星期四, 3月 31, 2016

docker unstable package install with openSUSE Leap 42.1 ( + ansible )

最近因為工作實驗環境需要, 需要安裝 docker 比較新的版本
寫了安裝小記還有 ansible playbook 檔案

OS: openSUSE Leap 42.1
套件安裝: docker 1.10.x 以上版本
(考慮實驗環境可能會測試 UCP 或是其他功能)

目前 docker 在 openSUSE Leap 42.1 官方版本為 1.9.x

套件版本查詢
之前進行套件查詢的時候都是使用 #zypper  search 套件名稱
為了有更多的資訊, 以後會多一些參數

# zypper   search   -s   --match-exact   docker
Loading repository data...
Reading installed packages...

S | Name   | Type       | Version    | Arch   | Repository               
--+--------+------------+------------+--------+--------------------------
 | docker | package    | 1.9.1-13.1 | x86_64 | openSUSE-Leap-42.1-Update
 | docker | package    | 1.9.1-10.1 | x86_64 | openSUSE-Leap-42.1-Update
 | docker | package    | 1.9.1-7.1  | x86_64 | openSUSE-Leap-42.1-Update
 | docker | package    | 1.9.0-4.1  | x86_64 | openSUSE-Leap-42.1-Update
 | docker | package    | 1.8.2-2.5  | x86_64 | openSUSE-Leap-42.1-Oss   

大概就是加上 -s 以及 --match-exact 這兩個 option
  • -s 顯示更多資訊, 但是沒有 -v 那麼多
  • --match-exact 符合後面字串的套件
    • 感覺效果像 --match-words ^docker$

因為要安裝非穩定版本以及想要批次安裝

初步嘗試想法
*使用 OneClickInstallCLI 搭配 .ymp 方式來安裝
相關檔案如下

但是目前 OneClickInstallCLI 不可以使用非互動方式安裝, 所以暫時作罷

目前作法
在 software.opensuse.org 搜尋 docker
點選 Virtualization:container
2016-03-31 10-29-59 的螢幕擷圖.png

到專案頁面
點選 Repositories
看到 The repositories are inherited from the project Virtualization:containers.
點選 Virtualization:containers 專案 -- > 點選 Repositories

這邊可以找到各個版本的 repositories 下載

2016-03-31 10-41-29 的螢幕擷圖.png

我用的是 Leap 42.1 所以 點選 openSUSE_Leap 42.1 的連結

這邊可以看到 .repo 檔案

2016-03-31 10-44-31 的螢幕擷圖.png

連結為

透過 zypper 指令來新增 repo, 加入 key 以及設定 refresh

  • --gpg-auto-import-keys  是自動匯入 repo的 key
  • -f 為設定 auto refresh

透過 zypper repos 來查詢

# zypper   repos
#  | Alias                     | Name                                           | Enabled | GPG Check | Refresh
---+---------------------------+------------------------------------------------+---------+-----------+--------
1 | Virtualization_containers | Virtualization:containers (openSUSE_Leap_42.1) | Yes     | ( p) Yes  | Yes    
2 | openSUSE-42.1-0           | openSUSE-42.1-0                                | No      | ----      | No     

# zypper  -n  install  docker
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 7 NEW packages are going to be installed:
 bridge-utils docker docker-image-migrator git-core git-gui gitk perl-Error

The following recommended package was automatically selected:
 docker-image-migrator

7 new packages to install.
Overall download size: 12.9 MiB. Already cached: 0 B. After the operation, additional 59.4 MiB will be used.
Continue? [y/n/? shows all options] (y): y
Retrieving package docker-image-migrator-1.0.2-7.1.x86_64           
  • -n  新版的zypper 使用 -n / --non-interactive 來避免互動

接下來準備啟動服務

確認目前狀態
# systemctl   status  docker
docker.service - Docker Application Container Engine
  Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
  Active: inactive (dead)
    Docs: http://docs.docker.com

啟動 docker
# systemctl  start   docker

確認目前狀態
# systemctl  status docker
docker.service - Docker Application Container Engine
  Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
  Active: active (running) since Thu 2016-03-31 11:00:58 CST; 2s ago
    Docs: http://docs.docker.com
Main PID: 32272 (docker)
  CGroup: /system.slice/docker.service
          └─32272 /usr/bin/docker daemon -H fd://

設定開機啟動

確認目前狀態
# systemctl  is-enabled  docker
disabled

設定開機啟動
# systemctl  enable  docker

確認目前狀態
# systemctl  is-enabled   docker
enabled

-------------------------------------------------

另外寫了 ansible 的 playbook .yml 來進行安裝

檔案如下
# cat   docker_unstable_openSUSELeap42.1_install.yml
---
#########################################################  
# Install docker package and setup boot with unstable repo in openSUSE Leap 42.1
- name: use when conditionals and setup module (facts)
 hosts: all
 tasks:
# 使用 setup moudule 列出 OS 種類
   - name: use setup module to list os distribution
# setup moudle 可以使用 filter 過濾相關內容
     setup: filter=ansible_distribution

#########################################################  

- name: Install docker and run service
# use [dockerUnstable] group to install
 hosts: dockerUnstable
 sudo: True
 tasks:
# Add Virtualization:container project repo
   - name: Add Virutalization:containers repo
     shell: zypper  --gpg-auto-import-keys   addrepo   -f http://download.opensuse.org/repositories/Virtualization:/containers/openSUSE_Leap_42.1/Virtualization:containers.repo

   - name: Install docker with openSUSE Leap
     zypper: name={{ item }}
     with_items:
       - docker
       - curl
     when: ansible_distribution == "openSUSE Leap"

#-------------------------------------------------------  

   - name: Set docker enable and run
     service: name=docker state=started enabled=yes


星期一, 3月 21, 2016

VMware vCenter VCSA 6.0 升級 6.0 update 2 小記

VMware vCenter VCSA 6.0 升級 6.0 update 2 小記

OS:  VMware vCenter VCSA 6.0.0

VMware vCenter 因為都會出現相關 event “ vmware-vpostgres status changes from green to yellow

解決方式為升級到 vCenter 6.0 update 1 以上

參考

Step 1:

到 VMware 上搜尋 patch

產品選擇 VC 選擇版本
因為我是用 VCSA 所以我是下載 VC-6.0.0-update02-Appliance
我選的是 FullPatch 的 iso 檔案 VMware-vCenter-Server-Appliance-6.0.0.20000-3634791-patch-FP.iso

2016-03-21 15-33-24 的螢幕擷圖.png


將 iso 上傳到 datastore

2016-03-21 15-54-33 的螢幕擷圖.png

讓 vCenter VCSA 掛載 iso

2016-03-21 15-57-12 的螢幕擷圖.png

使用 ssh 連線到 vCenter

下指令進行升級 ( Command> 為提示字元不用輸入 )
Command> software-packages   install  --iso --acceptEulas

[2016-03-21T07:59:18.081] : Staging software update packages from ISO
[2016-03-21T07:59:18.081] : ISO mounted successfully
[2016-03-21T07:59:18.081] : Verifying staging area
[2016-03-21T07:59:18.081] : Running pre-stage.py
[2016-03-21T07:59:18.081] : Validating software update payload
[2016-03-21T07:59:18.081] : Validation successful
[2016-03-21 07:59:19,610] : Processing software packages in update payload 1/22223/223
[2016-03-21T07:59:21.081] : (143) packages staged successfully
[2016-03-21 07:59:21,825] : Copying software packages 143/143
[2016-03-21 08:00:19,056] : Running test transaction ....
[2016-03-21 08:00:35,662] : Running pre-install script.....
[2016-03-21T08:02:46.081] : Services stopped.
[2016-03-21 08:02:46,202] : Upgrading software packages ....
[2016-03-21 08:12:48,173] : Running post-install script.....
[2016-03-21T08:12:50.081] : Packages upgraded successfully, Reboot is required to complete the installation.
[2016-03-21T08:12:50.081] : ISO unmounted successfully

進行重開機

Command> shutdown  reboot  -r  update

重開機之後記得卸載 iso

2016-03-21 16-29-23 的螢幕擷圖.png


重開之後, 檢查版本
我嘗試在 vCenter web client 找, 但是結果沒有很滿意

目前我是在 https://主機IP:5480
以 root 登入
點選左側的 更新 來確定相關版本

2016-03-21 16-39-10 的螢幕擷圖.png


先記下來

~ enjoy it

星期三, 3月 09, 2016

postfix 透過 Gmail 驗證寄送 with openSUSE

postfix 透過 Gmail 驗證寄送 with openSUSE

OS: openSUSE 13.1

從來沒有想過再摸postfix 是因為 ipv6
因為專案的關係設定 nagios 監控主機
但是使用者卻沒有收到信件, 檢查一下 mail log, 發現應該是 ipv6 沒有設定適當反解的問題
to=<xxxxx@gmail.com>, relay=gmail-smtp-in.l.google.com[2404:6800:4008:c01::1a]:25, delay=31, delays=0.01/0.01/31/0.48, dsn=5.7.1, status=bounced (host gmail-smtp-in.l.google.com[2404:6800:4008:c01::1a] said: 550-5.7.1 [2001:e10:2000:6:69fd:8220] Our system has detected that 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR 550-5.7.1 records and authentication. Please review 550-5.7.1  https://support.google.com/mail/?p=ipv6_authentication_error for more 550 5.7.1 information.

但是由於是使用 VM 來進行系統監控, 當然就不會考量設定固定 ip / DNS 正反解來解決.

於是把想法放到 postfix 的 relayhost = [主機名稱/IP] 的作法上面
希望透過gmail 的 smtp 伺服器來進行郵件傳遞

參考

實作:
安裝相關套件( 下面這三個套件我其實已經內建 )
#zypper   install  postfix   mailx   cyrus-sasl

#vi  /etc/postfix/sasl_passwd
新增
[smtp.gmail.com]:587    你的帳號@gmail.com:password

修改權限
# chmod  600   /etc/postfix/sasl_passwd

修改 postfix
# vi   /etc/postfix/main.cf
加入
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem

#vi  /etc/postfix/master.cf
取消註解
#tlsmgr unix - - n 1000? 1 tlsmg
tlsmgr unix - - n 1000? 1 tlsmg

處理password file
#postmap  /etc/postfix/sasl_passwd

重新啟動 postfix
#systemctl   restart  postfix.service

作法1
將 gmail 設定低安全性 ( google 應用程式也許無法使用, 安全性較低 )
到 gmail 的我的帳戶 -- > 登入和安全性 -- > 將 允許安全性較低的應用程式 啟用

2016-03-09 15-45-08 的螢幕擷圖.png


作法2
使用兩階段認証應用程式密碼

#vi  /etc/postfix/sasl_passwd
修改
[smtp.gmail.com]:587    你的帳號@gmail.com:兩階段應用程式密碼

處理password file
#postmap  /etc/postfix/sasl_passwd

完成之後就可以試試看 使用 mail 指令看看能不能寄出

Notes
  • 用 postconf 檢查設定
  • 設定檔最好寫在最後一行 ( 感謝 Netman 老大 )

~ enjoy it