一、salt簡介
saltstack是一個基於C/S架構的集中化管理平臺,具備配置管理、遠程執行、監控等功能。使用saltstack可以一鍵批量部署服務、遠程執行命令,在大規模的服務集羣中大大提高了運維人員的工作效率。
saltstack基於python語言開發,使用輕量級消息隊列(ZeroMQ)pub/sub進行通信。
minion在首次時,會在/etc/salt/pki/minion/(該路徑可在/etc/salt/minion中設置)下自動生成minion.pem(私鑰)和minion.pub(公鑰),然後將minion.pub發送給master。master通過salt-key -A命令接收minion的公鑰時,在master的/etc/salt/pki/master/minions/目錄下就會產生保存minion公鑰的文件,之後master就能對minion發送指令了。
二、salt安裝
salt運用了YAML語言、Jinja模版語言、ZeroMQ,這些都不需要安裝。需要做的就是配置一個epel源,然後執行yum -y install salt-master,就會發現這些依賴包已經在這個過程中全部被安裝了。
在要被管理的機器上配置epel源,執行yum -y install salt-minion完成客戶端的安裝。
三、salt配置
默認的配置文件都存放在/etc/salt/目錄下。
master文件配置:
[root@zhen ~]# sed -e '/^#/d;/^$/d'/etc/salt/master default_include:master.d/*.conf timeout: 60 file_roots: #指定文件路徑 base: - /etc/salt/states/base #base環境路徑 prod: - /etc/salt/states/prod #prod環境路徑
因爲是剛開始學習salt,使用這些配置就足夠完成很多操作了。定義的兩個文件路徑需要手動生成。
minion文件配置:
[root@zhen ~]# sed -e '/^#/d;/^$/d'/etc/salt/minion master: 192.168.199.79 id: saltstack.test.com #id可以自定義,最好有一定的規律
salt在配置上是非常簡單的,但是它實現的功能就遠不止這麼簡單了!
四、啓動測試
1、啓動:
在CentOS系列系統上使用yum安裝的軟件啓動方式都是一樣的:
[root@zhen ~]# salt-key -L Accepted Keys: Denied Keys: Unaccepted Keys: saltstack.test.com Rejected Keys:
2、測試:
(1)查看key列表:
[root@zhen ~]# salt-key -L Accepted Keys: Denied Keys: Unaccepted Keys: saltstack.test.com Rejected Keys:
從上面可以看出來saltstack.test.com的key還沒有接收,用下面的命令接收所有沒有接收的key:
[root@zhen ~]#salt-key -A The followingkeys are going to be accepted: Unaccepted Keys: saltstack.test.com Proceed? [n/Y] Y Key for minionsaltstack.test.com accepted
(2)key接收之後就可以對minion遠程執行命令了:
[root@zhen ~]#salt 'saltstack.test.com' test.ping saltstack.test.com: True #使用test.ping測試用minion的連通性
[root@zhen ~]#salt 'saltstack.test.com' cmd.run 'date' saltstack.test.com: WedJul 13 18:51:00 EDT 2016 #使用cmd.run執行date命令
注意:執行命令時,如果針對所有節點,可以用salt ‘*’加上命令即可。但是對所有節點進行操作時,最好在命令後面加上 test=True 查看下執行的操作都有哪些,再執行命令。