常用
命令行
salt --summary "*" test.ping
#測試主機並彙總
salt "*" cmd.run "ifconfig eth0 | awk '/inet/ {print \$2}'"
#執行遠程命令; awk正則匹配inet行,轉義$
salt -N "apps" cmd.script salt://scripts/test.sh
#執行遠程shell;apps應用組執行腳本
salt "*" pkg.version "redis" #查看yum包版本,install,remove
salt "*" service.status redis #查看服務 ;stop,start,restart
state.sls狀態管理
# salt "*" state.highstate
#salt初始化環境 ;複合狀態的使用:base目錄下尋找top.sls入口文件
# salt "*" state.sls saltenv='prod' tests.filetest
#通過saltenv指定環境中sls所在的根目錄(base、prod和dev )
salt "*" state.highstat pillarenv='html'
#例子:在默認base目錄使用指定的pillar環境
Requisites(sls流程控制)
- require:本state執行時需要先執行那些state
- require_in:與require位置相反
- watch:除了require外,也會監測依賴的state的狀態,如果狀態發生變化,做出反應(例如監控文件變化,發生變化後立即重啓服務)
- watch_in: 與watch位置相反
- prereq:0.16.0 新增的功能,會通過test=True接口檢查所依賴的state的狀態,如果狀態發生變化,執行
- prereq_in:相反
grains 靜態數據
只在啓動minion時才採集一次數據
salt '*' grains.items
#詳細信息
salt '*' grains.ls
#獲取grains採集信息項目
salt '*' grains.get os
#獲取所有系統安裝的操作系統類型
salt -G os:CentOS cmd.run 'w '
#對centos系統執行遠程命令 (w查看誰登陸在做什麼操作)
salt -G 'master:127.0.0.1' grains.ls
#查看grains項;grains.items 查看詳細
salt "*" grains.get master | head -2
#查看master地址;用get方法獲取items項的值
salt "*" grains.items | grep nodename -A 1
#查看主機名;如 grains.get nodename
pillar 動態數據
salt '*' saltutil.refresh_pillar #刷新所有機器上的pillar
salt '*' pillar.data pillarenv='live' # #查看指定項目所有主機的pillar
模塊
salt "*" saltutil.sync_modules #同步模塊
#自定義模塊推送到minion
salt "*" type.run "hello world"
#執行模塊
salt '*' saltutil.sync_all
#同步所有
salt "*" sys.list_modules
#列出所有可執行的模塊
salt "*" sys.list_state_functions pkg
#列舉模塊中的函數
salt "*" sys.doc pkg
#查看模塊註釋
salt api
實操:
初始化環境: http://ops.attacker.club/Automatic/salt_init.html 線上服務部署: http://ops.attacker.club/Automatic/salt_deploy.html
part 1 生產環境部署
salt-ssh --roster-file=/srv/salt/salt-master_tools/keys/roster -i "*" test.ping
salt-ssh --roster-file=/srv/salt/salt-master_tools/keys/roster -i "*" state.sls init.salt-minion.install
salt-ssh --roster-file=/srv/salt/salt-master_tools/keys/roster -i "*" state.sls init.salt-minion.uninstall
#通過salt-ssh 推送minion端,或者初始化時shell安裝salt-minion