salt 常用命令整理
salt 常用命令整理
***********模塊*********** 查看模塊列表module salt ‘minion‘ sys.list_modules 查看指定module的function用法 salt ‘minion‘ sys.list_functions file 查看指定模塊的詳細用法 salt ‘minion‘ sys.doc cmd ***********模塊使用說明*********** 查看配置管理state模塊列表 salt ‘minion‘ sys.list_state_modules 查看配置管理sate列表指定模塊所有方法列表 salt ‘minion‘ sys.list_state_functions svn 查看配置管理state列表指定模塊詳細用法 salt ‘minion‘ sys.state_doc file 查看配置管理state列表指定模塊的方法分支 salt ‘minion‘ sys.state_doc file.managed ***********pillar變量*********** 查看主機對應的所有pillar變量值 salt ‘*‘ pillar.data salt ‘*‘ pillar.items 查看主機對應的多個pillar變量值 salt ‘*‘ pillar.item roles appname 修改pillar值後需要刷新pillar數據 salt ‘*‘ saltutil.refresh_pillar 查看pillar模塊詳細用法,其他類似 salt ‘minion‘ sys.doc pillar 查看pillar的相關方法 salt ‘minion‘ sys.list_functions pillar """ shuke: - pillar.data - pillar.ext - pillar.get - pillar.item - pillar.items - pillar.raw """ ***********grains變量*********** 查看模塊用法 salt ‘minion‘ sys.list_functions grains 查看item項 salt ‘minion‘ grains.ls 查看所有iteams salt ‘minion‘ grains.items 獲得某個item值 salt ‘minion‘ grains.get os 同步_grains目錄下的py腳本至minion salt ‘minion‘ saltutil.sync_all 如果py模塊有修改,修改後進行重載 salt ‘minion‘ sys.reload_modules ***********minions在線狀態*********** 查看所有minion狀態 salt-run manage.status 查看所有minion在線狀態 salt-run manage.up 查看所有minion不在線狀態 salt-run manage.down ***********key管理*********** salt-key 密鑰管理,通常在master端執行 salt-key [options] salt-key -L ##查看所有minion-key salt-key -a <key-name> ##接受某個minion-key salt-key -d <key-name> ##刪除某個minion-key salt-key -A ##接受所有的minion-key salt-key -D ##刪除所有的minion-key ***********salt-call相關*********** salt-call 該命令通常在minion上執行,minion自己執行可執行模塊,不是通過master下發job salt-call [options] <function> [arguments] salt-call test.ping ##自己執行test.ping命令 salt-call cmd.run ‘ifconfig‘ ##自己執行cmd.run函數 ***********文件分發*********** salt-cp 分發文件到minion上,不支持目錄分發,通常在master運行 salt-cp [options] ‘<target>‘ SOURCE DEST salt-cp ‘*‘ testfile.html /tmp salt-cp ‘test*‘ index.html /tmp/a.html salt ‘S1_0_001_Room‘ cp.get_dir salt://package /tmp -v 同步目錄 salt ‘S1_0_001_Room‘ cp.get_file salt://package/minions.tar.gz /tmp/minions.tar.gz gzip=5 同步文件 **********其他*********** salt-run jobs.active #查看所有minion當前正在運行的jobs salt ‘*‘ saltutil.running # 查看正在運行的任務,找到jid salt ‘*‘ saltutil.kill_job jid # 根據jid殺掉任務 salt ‘*‘ saltutil.clear_cache # 清除minion緩存 執行單個命令 salt ‘minion‘ cmd.run ‘ps -ef | grep mongod‘ 測試單個sls模塊 salt ‘minion‘ state.sls nginx test=True 執行前進行測試 salt ‘minion‘ state.highstate test=True 在所有minion上執行狀態: salt ‘minion‘ sate.highstate 獲取執行jib任務的md5值 salt ‘minion‘ hashutil.md5_digest 20170202150211366486 low數據可以使用state.show_lowstate方法查看 salt ‘minion‘ state.show_lowstate --out yaml High State數據可以使用state.show_hoghstate方法查看 salt ‘minion‘ state.show_highstate --out yaml #查看highstate salt ‘minion‘ state.show_highstate #查看lowdata salt ‘minion‘ state.show_lowstate #執行所有top.sls salt ‘*‘ state.apply #執行指定環境下top.sls salt ‘*‘ state.apply saltenv=dev 註: name:要執行的命令,記住該命令將會在salt-minion的路徑和權限下執行 onlyif:用於檢查的命令,僅當``onlyif``選項指向的命令返回true時才執行name定義的命令 unless:用於檢查的命令,僅當``unless``選項指向的命令返回false時才執行name指向的命令 查看wyd用戶下進程 salt -N ‘Z1_S2‘ cmd.run ‘su -c "ps -u wyd | grep -v top | grep -v bash | grep -v sshd | grep -v grep | grep -v ps | grep -v CMD " wyd‘ state中(鉤子函數) requisiterequisite:require/watch/onchanges/onfail/use/prereq/require_in(反轉) ========Targeting Minion======= #Glob(默認) salt ‘*‘ test.ping salt \* test.ping #PCRE 正則表達式 salt -E ‘^[m|M]in.[e|o|u]n$‘ test.ping = salt -E ‘^[mM]in.[eou]n$‘ test.ping #list salt -L web1,web2,db1 test.ping #Subnet salt -S 192.168.1.100 test.ping salt -S 192.168.0.0/16 test.ping #Grain salt -G ‘os:ubuntu‘ test.ping salt -G ‘os_family:Debian‘ test.ping salt -G ‘ip_interfaces:eth0:192.168.1.100‘ test.ping salt -G ‘ipv6:::1‘ test.ping salt --grain-pcre ‘os:red(hat|flag)‘ test.ping #Pillar salt -I ‘my_var:my_val‘ test.ping #混合(Compound) salt -C [email protected]