salt 初始化-碼雲

常用

命令行

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章