1. 程式人生 > >salt 常用命令整理

salt 常用命令整理

test rm -rf source zip 表達 執行cmd root function ons

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]
/* */:Ubuntu,[email protected]:web,[email protected]/24‘ test.ping salt -C ‘min* or *ion‘ test.ping salt -C ‘web* or *qa,[email protected]:Arch‘ test.ping #Nodegroup salt -N webdev test.ping 添加計劃任務 salt ‘S1_*_Center‘ cron.set_job root ‘0‘ ‘5‘ ‘*‘ ‘*‘ ‘*‘ ‘/usr/sbin/logrotate -vf /etc/logrotate.d/acl >/tmp/cutacl_log 2>&1‘ identifier=cutacl 刪除計劃任務 salt -C [email protected]
/* */_(10001|10002|10003)_*‘ cron.rm_job wyd ‘cd /data/wyd/game_server_1.2.0/log;find . -type f -mtime +15 -name "*.log*" -exec rm -rf {} \; 2>&1‘ identifier=‘clear log‘ 相關URL: http://blog.csdn.net/death_kada/article/details/48547271 http://blog.csdn.net/cnweike/article/details/12746399 pillar

完善中......

salt 常用命令整理