SaltStack自動化運維管理(二)——遠程執行
1. 遠程執行shell命令
Salt命令由三個主要部分構成:
salt '<target>' <function> [arguments]
-
target: 指定哪些minion, 默認的規則是使用glob匹配minion id
salt '*' test.ping
-
Targets也可以使用正則表達式:
salt -E 'server[1-3]' test.ping
-
Targets也可以指定列表:
salt -L 'server2,server3' test.ping
-
funcation是module提供的功能,Salt內置了大量有效的functions
salt '*' cmd.run 'uname -a'
-
arguments通過空格來界定參數:
salt 'server2' sys.doc pkg
#查看模塊文檔
salt 'server2' pkg.install httpd
salt 'server2' pkg.remove httpd
-
salt內置的執行模塊列表:
http://docs.saltstack.cn/ref/modules/all/index.html
2. 編寫遠程執行模塊
如果感覺執行模塊不夠用,可以自己編寫遠程執行模塊
編輯master配置文件:
vim /etc/salt/master #可以不用編寫,默認配置就是
file_roots:
base:
- /srv/salt
重啓master服務:
systemctl restart salt-master
創建模塊目錄:
mkdir /srv/salt
mkdir /srv/salt/_modules
編寫模塊文件:
vim /srv/salt/_modules/mydisk.py
def df():
return __salt__['cmd.run']('df -h')
同步模塊:
salt '*' saltutil.sync_modules
在server2和server3中查看:
yum install -y tree
cd /var/cache/salt/
tree minion/
運行模塊:
salt server2 mydisk.df