前言--需要思考的幾個問題:
saltstack是什麼?
我們可以用saltstack做什麼?
saltstack未來的發展趨勢?
帶着問題開始馳騁
1、這個由Python開發的自動化運維工具,可以寫強大的運維平臺喲!
2、接下來我們看看安裝與配置
master端安裝
yum -y install salt-master //安裝就是這麼簡單
minion端安裝
yum -y install salt-minion
master端配置
vi /etc/salt/master
interface: 192.168.24.66
auto_accept: True
file_roots: //定義salt工作根目錄
base:
- /srv/salt
minion端配置
vi /etc/salt/minion
master: 192.168.24.66
id: 192.168.24.68
3、是的安裝配置就是這麼簡單,下面啓動服務,讓他跑起來
master端
/etc/init.d/salt-master start
minion端
/etc/init.d/salt-minion start
4、查看keys狀態,並添加minion keys
[root@localhost ~]# salt-key -L Accepted Keys: Denied Keys: Unaccepted Keys: 192.168.24.67 192.168.24.68 Rejected Keys: [root@localhost ~]# salt-key -A The following keys are going to be accepted: Unaccepted Keys: 192.168.24.67 192.168.24.68 Proceed? [n/Y] Y Key for minion 192.168.24.67 accepted. Key for minion 192.168.24.68 accepted.
再次查看,已經在列表中了
[root@localhost ~]# salt-key -L Accepted Keys: 192.168.24.67 192.168.24.68 Denied Keys: Unaccepted Keys: Rejected Keys:
5、執行test.ping測試是否成功
此處踩過的坑
salt-key -A 這個添加後,在master端/etc/salt/pki/master/minions下會生成minion的公鑰文件
同時minion端/etc/salt/pki/minion下也會生成master的公鑰文件minion_master.pub,其實這就是
一個互信的過程。此處有坑
[root@localhost minion]# salt '*' test.ping 192.168.24.67: Minion did not return. [No response] 192.168.24.68: Minion did not return. [No response]
需要將在master端執行salt-key -D,去除一下keys。將minion端/etc/salt/pki/minion 此目錄下文件清理掉。然後啓動minion端服務,不需要執行其他操作,如下就成功。---此處是經驗(刪除minion端文件/etc/salt/pki/minion/minion_master.pub,再啓動minion端服務)
[root@localhost minions]# salt '*' test.ping
192.168.24.67:
True
192.168.24.68:
True
6、其實此時我們已經跑起來了,可以去做我們想做的事情了
你的最愛(是的,使用模塊cmd.run你想在客戶端執行啥命令都行)
[root@localhost ~]# salt '*' cmd.run 'df -h'
192.168.24.67:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 93G 4.5G 84G 6% /
tmpfs 1.9G 12K 1.9G 1% /dev/shm
/dev/sda1 190M 146M 31M 83% /boot
192.168.24.68:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 93G 4.5G 84G 6% /
tmpfs 1.9G 12K 1.9G 1% /dev/shm
/dev/sda1 190M 146M 31M 83% /boot
7、使用模塊cmd.run 在生產環境一些敏感命令不建議使用
salt ‘*’ cmd.run ‘rm -rf /’ //分分鐘,玩死所有服務器
------------------------------------------------------------
ok,前面是初步認識,接下來我們做點兒有意義的事情
8、寫幾個狀態文件,讓我們探索一下他的趣事
[root@localhost salt]# cd /srv/salt/
[root@localhost salt]# vim zabbix.sls
zabbix_agent: pkg.installed: //pkg是模塊,installed是該模塊的一個方法;做yum安裝 - name: zabbix22-agent file.managed: //文件拷貝 - name: /etc/zabbix_agentd.conf - source: salt://zabbix_agentd.conf - user: root - group: root - mode: 644 service.running: //服務管理 - name: zabbix_agentd - enable: True //啓動服務 - watch: - file: zabbix_agent
9、運行文件
[root@localhost salt]# salt '*' state.sls zabbix
安裝成功
[root@localhost minion]# rpm -qa | grep zabbix
zabbix22-agent-2.2.11-1.el6.x86_64
zabbix22-2.2.11-1.el6.x86_64
[root@localhost minion]# ll /etc/zabbix_agentd.conf
-rw-r--r--. 1 root root 5978 Jul 3 13:09 /etc/zabbix_agentd.conf
10、初接觸(學習幾個參數)
salt -E 'web1-(prod|devel)' test.ping //匹配正則表達式
salt -L 'web1,web2,web3' test.ping //列表匹配
salt -G 'os:CentOS' test.ping //grains
salt -G 'cpuarch:x86_64' grains.item num_cpus
11、此刻你也許已經對他有好感了,開始想了解更多關於他的事,先戛然而止______
-----------未完待續------------