實際環境的設定:
系統環境: | centos6 或centos5 |
實驗機器: | 192.168.1.100 |
軟件需求: | salt 套件,及其需求環境 |
實驗目的: | 成功安裝salt,並實現salt主從間通訊 |
特殊設置: | |
其它目的: |
安裝SaltStack(下面簡稱爲salt)
epel安裝:salt安裝需要epel源支持,所以在安裝salt前需要先安裝epel包
# centos5 下載下面rpm wget -O epel.rpm https://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm # centos 6 下載下面rpm wget -O epel.rpm http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm ## 安裝epel rpm -Uvh epel.rpm
salt-master 安裝 : 僅需要在salt的master主機上安裝
yum -y install salt-master
salt-minion 安裝 :監控管理的機器上面安裝該控制端
yum -y install salt-minion
配置SaltStack
備註:根據需要選擇配置下面的配置文件,這裏因爲是一個機器上面配置測試,所以兩個文件都要配置。
配置salt-master : /etc/salt/master
# salt運行的用戶,影響到salt的執行權限 user: root #s alt的運行線程,開的線程越多一般處理的速度越快,但一般不要超過CPU的個數 worker_threads: 10 # master的管理端口 publish_port : 4505 # master跟minion的通訊端口,用於文件服務,認證,接受返回結果等 ret_port : 4506 # 如果這個master運行的salt-syndic連接到了一個更高層級的master,那麼這個參數需要配置成連接到的這個高層級master的監聽端口 syndic_master_port : 4506 # 指定pid文件位置 pidfile: /var/run/salt-master.pid # saltstack 可以控制的文件系統的開始位置 root_dir: / # 日誌文件地址 log_file: /var/log/salt_master.log # 分組設置 nodegroups: group_all: '*' # salt state執行時候的根目錄 file_roots: base: - /etc/salt/file # 設置pillar 的根目錄 pillar_roots: base: - /etc/salt/pillar
配置salt-minion : /etc/salt/minion
# minion的識別ID,可以是IP,域名,或是可以通過DNS解析的字符串 id: 192.168.0.100 # salt運行的用戶權限 user: root # master的識別ID,可以是IP,域名,或是可以通過DNS解析的字符串 master : 192.168.0.100 # master通訊端口 master_port: 4506 # 備份模式,minion是本地備份,當進行文件管理時的文件備份模式 backup_mode: minion # 執行salt-call時候的輸出方式 output: nested # minion等待master接受認證的時間 acceptance_wait_time: 10 # 失敗重連次數,0表示無限次,非零會不斷嘗試到設置值後停止嘗試 acceptance_wait_time_max: 0 # 重新認證延遲時間,可以避免因爲master的key改變導致minion需要重新認證的syn風暴 random_reauth_delay: 60 # 日誌文件位置 log_file: /var/logs/salt_minion.log # 文件路徑基本位置 file_roots: base: - /etc/salt/minion/file # pillar基本位置 pillar_roots: base: - /data/salt/minion/pillar
啓動SaltStack
# 啓動master service salt-master restart # 啓動minion service salt-minion restart #------------------------------------------ # 也可以使用下面的啓動方式 /usr/bin/python2.6 /usr/bin/salt-master -d /usr/bin/python2.6 /usr/bin/salt-minion -d
注意: saltstack 是使用python2的語言編寫,對python3的兼容性不好,請使用python2的環境
測試SaltStack
接受salt-minion的認證請求
[root@yw_home salt]# salt-key Accepted Keys: Unaccepted Keys: 192.168.0.100 [root@yw_home salt]# salt-key -y -a 192.168.0.100 The following keys are going to be accepted: Unaccepted Keys: 192.168.0.100 Key for minion 192.168.0.100 accepted.
去除salt-minion的認證
## 如果覺得該minion不需要了,可以*** [root@yw_home salt]# salt-key -y -d 192.168.0.100 Deleting the following keys: Accepted Keys: 192.168.0.100 Key for minion 192.168.0.100 deleted.
備註: 更多的salt-key操作,會在另一個文章中說明
開始測試saltstack
[root@yw_home salt]# salt '192.168.0.100' test.ping --show-timeout 192.168.0.100: True
備註:如果返回true則成功,如果無結果,則說明連接爲失敗,可以檢查防火牆是否開放了4506,4505端口,或是重啓salt-minion再試試,有時候master跟minion版本不同的問題,也會導致連接失敗