SaltStack簡介及安裝配置
SaltStack是一款開源的,基於Python的自動化運維工具,通過SaltStack,我們可以在成千上萬臺服務器上批量執行命令、分發文件、配置管理、部署代碼、採集數據、安裝軟件等等,它具有以下特性:
(1)、部署簡單、方便;
(2)、支持大部分UNIX/Linux及Windows環境;
(3)、主從集中化管理;
(4)、配置簡單、功能強大、擴展性強;
(5)、主控端(master)和被控端(minion)基於證書認證,安全可靠;
(6)、支持API及自定義模塊,可通過Python輕鬆擴展。
另外,它結合輕量級消息隊列(ZeroMQ)與Python第三方模塊(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)構建,使得在大規模集羣上也得獲得好的性能。
SaltStack簡單安裝測試
準備三臺機器:
192.168.64.130 Master
192.168.64.131 Minion
192.168.64.132 Minion
salt-master安裝
yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
yum clean expire-cache
yum install salt-master -y
salt-master配置
vi /etc/salt/master
interface: 0.0.0.0
publish_port: 4505
worker_threads: 5
ret_port: 4506
salt-minion安裝
yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
yum clean expire-cache
yum install salt-minion –y
salt-minion配置
vi /etc/salt/minion
master: 192.168.64.130
id: 192.168.64.131 #覆蓋默認的id;每個minion的id都是唯一的。minion啓動後會用id值去master進行驗證。這裏使用minion的ip地址作爲id
啓動
啓動Master
service salt-master start
啓動minion
service salt-minion start
Master和Minion建立信任關係
master和minion安裝配置完成後,如果master要管理minion,就要接收minion的key。任意minion的在master沒有接受前,minion的公鑰存放在/etc/salt/pki/master/minions_pre目錄下,公鑰文件以id命名。
在Master上查看minion列表:
salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
192.168.64.131
192.168.64.132
Rejected Keys:
Unaccepted Keys:
192.168.64.131
192.168.64.132
表示兩臺minion還未被接受。
接收單個minion
salt-key -a 192.168.64.131
[root@node0 ~]# salt-key -a 192.168.64.131
The following keys are going to be accepted:
Unaccepted Keys:
192.168.64.131
Proceed? [n/Y] Y
Key for minion 192.168.64.131 accepted.
[root@node0 ~]# salt-key -L
Accepted Keys:
192.168.64.131
Denied Keys:
Unaccepted Keys:
192.168.64.132
Rejected Keys:
接收所有的minion
salt-key -A
[root@node0 ~]# salt-key -L
Accepted Keys:
192.168.64.131
192.168.64.132
Denied Keys:
Unaccepted Keys:
Rejected Keys:
測試遠程執行命令
salt '*' cmd.run 'hostname'
salt '*' cmd.run 'python -V'
saltstack
當命令在所有minion上執行成功時候,在打印每個minion id及對應的執行結果時,minion id爲藍色,執行返回碼爲0.
salt '*' cmd.run 'aa'
salt '*' cmd.run 'su - lxw1'
當所有minion或者部分minion執行失敗時候,執行返回碼都不爲0,並且失敗的minion id爲紅色。
後面將繼續學習SaltStack的其他功能,比如分發文件,定時/週期執行,返回數據自定義存儲等。