SALT API開發相關命令記錄。node
查看當前的salt key信息
salt-key -Lpython
測試被控主機的連通性
salt '*' test.pingmysql
遠程命令執行測試
salt '*' cmd.run 'uptime'react
根據被控主機的grains信息進行匹配過濾
salt -G 'os:Centos' test.ping sql
顯示被控主機的操做系統類型
salt '*' grains.item osshell
遠程代碼執行測試
salt '*' cmd.exec_code python 'import sys; print sys.version' windows
經常使用模塊介紹服務器
(1)、cp模塊(實現遠程文件、目錄的複製,以及下載URL文件等操做)
將主服務器file_roots指定位置下的目錄複製到被控主機
salt '*' cp.get_dir salt://hellotest /data網絡
將主服務器file_roots指定位置下的文件複製到被控主機
salt '*' cp.get_file salt://hellotest/rocketzhang /root/rocketzhangapp
下載指定URL內容到被控主機指定位置
salt '*' cp.get_url http://xxx.xyz.com/download/0/files.tgz /root/files.tgz
(2)、cmd模塊(實現遠程的命令行調用執行)
salt '*' cmd.run 'netstat -ntlp'
(3)、cron模塊(實現被控主機的crontab操做)
爲指定的被控主機、root用戶添加crontab信息
salt '' cron.set_job root '/5' '' '' '' '' 'date >/dev/null 2>&1' salt '*' cron.raw_cron root
刪除指定的被控主機、root用戶的crontab信息
salt '' cron.rm_job root 'date >/dev/null 2>&1' salt '' cron.raw_cron root
(4)、dnsutil模塊(實現被控主機通用DNS操做)
爲被控主機添加指定的hosts主機配置項
salt '*' dnsutil.hosts_append /etc/hosts 127.0.0.1 rocketzhang.qq.com
(5)、file模塊(被控主機文件常見操做,包括文件讀寫、權限、查找、校驗等)
salt '' file.get_sum /etc/resolv.conf md5 salt '' file.stats /etc/resolv.conf
(6)、network模塊(返回被控主機網絡信息)
salt '' network.ip_addrs salt '' network.interfaces
(7)、pkg包管理模塊(被控主機程序包管理,如yum、apt-get等)
salt '' pkg.install nmap salt '' pkg.file_list nmap
(8)、service 服務模塊(被控主機程序包服務管理)
salt '' service.enable crond salt '' service.disable crond salt '' service.status crond salt '' service.stop crond salt '' service.start crond salt '' service.restart crond salt '*' service.reload crond
(9)、更多功能
更多的功能,好比:grains、pillar、states、modules、returner、runners、reactor等,還有以下高級命令的使用,以及模板配置的渲染、擴展模塊的二次開發等,能夠本身去深刻學習哈。
**salt相關的管理命令:**salt-run manage.up # 查看存活的minionsalt-run manage.down # 查看死掉的minionsalt-run manage.down removekeys=True # 查看down掉的minion,並將其刪除salt-run manage.status # 查看minion的相關狀態salt-run manage.versions # 查看salt的全部master和minion的版本信息salt-run jobs.active # 查看哪些系統任務還在處理中salt-run jobs.list_jobs # 顯示全部的已完成或部分完成的任務信息salt '*' saltutil.running # 查看運行的jobs IDsalt \* saltutil.kill_job 20151209034239907625 # kill掉進程IDsalt -d # 查看幫助文檔salt -d|grep service # 查看service相關模塊命令salt '*' sys.doc # 查看幫助文檔salt-key -L # 查詢全部接收到的證書salt-key -a <證書名> # 接收單個證書salt-key -A # 接受全部證書salt-key -d <證書名> # 刪除單個證書salt-key -D # 刪除全部證書salt '*' service.get_all # 獲取主機全部服務salt '*' service.reload sshd # 重載sshd服務salt '*' pkg.list_pkgs # 顯示軟件包版本列表salt '*' pkg.version python # 顯示軟件包版本信息salt '*' pkg.install httpd # 安裝軟件包salt 'node1.com' service.status mysql # 查看mysql服務狀態salt 'node1.com' service.start mysql # 啓動mysql服務salt 'node1.com' cmd.run 'service mysql status' # 與上面同樣查看服務salt '*' sys.list_modules # 模塊列表salt-cp '*' /etc/hosts /etc/hosts # 把master上的hosts文件分發到全部主機salt '*' cp.get_file salt://ceshi/b /tmp/test # 把salt-master端相應的文件,分發文件到minion端salt '*' cp.get_dir salt://zabbix /tmp # 把salt-master端相應的目錄,分發文件到minion端salt '*' file.copy /tmp/zabbix.sls /tmp/sls # 把salt-master端對應文件拷貝到minion端相應目錄下salt '*' cmd.run 'uptime' # 遠程命令執行測試 遠程執行腳本:'cmd.script:' salt '*' cmd.script salt://scripts/runme.sh salt '*' cmd.script salt://scripts/runme.sh 'arg1 arg2 "arg 3"' salt '*' cmd.script salt://scripts/windows_task.ps1 args=' -Input c:\tmp\infile.txt' shell='powershell' salt '*' cmd.script salt://scripts/runme.sh stdin='one\ntwo\nthree\nfour\nfive\n''cmd.shell:' This passes the cmd argument directly to the shell salt '*' cmd.shell "ls -l | awk '/foo/{print \$2}'" salt '*' cmd.shell template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print \$2}'" salt '*' cmd.shell "Get-ChildItem C:\ " shell='powershell' salt '*' cmd.shell "grep f" stdin='one\ntwo\nthree\nfour\nfive\n' salt '*' cmd.shell cmd='sed -e s/=/:/g''cmd.shells:' salt '*' cmd.shells'cmd.tty:' salt '*' cmd.tty tty0 'This is a test' salt '*' cmd.tty pts3 'This is a test''cmd.which:' salt '*' cmd.which cat**grains選項:**salt '*' grains.ls # 查看grains分類salt '*' grains.items # 查看grains全部信息salt '*' grains.item osrelease # 查看grains某個信息