您好,登錄后才能下訂單哦!
Salt提供了非常豐富的功能模塊,涉及操作系統(tǒng)的基礎(chǔ)功能、常用工具支持等,可以通過sys模塊列出當前版本支持的模塊。
salt '*' sys.list_modules 781915e2: - acl - aliases - alternatives - apache - archive - artifactory - at - blockdev - btrfs - buildout - cloud - cmd ......
API的原理是通過調(diào)用master client模塊,實例化一個LocalClient對象,再調(diào)用cmd()方法來實現(xiàn)的。
API實現(xiàn)test.ping示例:
>>> import salt.client >>> client = salt.client.LocalClient() >>> ret = client.cmd('*','test.ping') >>> print ret {'781915e2': True} #結(jié)果以一個標準的Python字典形式的字符串返回,可以通過eval()函數(shù)轉(zhuǎn)換成Python的字典類型,方便后續(xù)的業(yè)務(wù)邏輯處理
(1)Archive模塊
功能:實現(xiàn)系統(tǒng)層面的壓縮包調(diào)用,支持gunzip、gzip、rar、tar、unrar、unzip等。
示例:
salt '781915e2' cmd.run 'mkdir /opt/test' #為被控端minion創(chuàng)建/opt/test目錄 781915e2: scp test.txt.gz root@kurol:/opt/test #將測試的gzip文件拷貝給被控端minion salt '781915e2' archive.gunzip /opt/test/test.txt.gz #解壓被控端/opt/test/test.txt.gz文件 781915e2: salt '781915e2' archive.gzip /opt/test/test.txt #壓縮 781915e2:
API調(diào)用:
>>> import salt.client >>> client = salt.client.LocalClient() >>> client.cmd('*','archive.gunzip',['/opt/test/test.txt.gz']) {'781915e2': []}
(2)cmd模塊
功能:實現(xiàn)遠程的命令行調(diào)用執(zhí)行(默認具備root操作權(quán)限,使用時需評估風險)
示例:
[root@server ~]# salt '*' cmd.run "free -m" 781915e2: total used free shared buffers cached Mem: 996 834 162 0 121 252 -/+ buffers/cache: 460 536 Swap: 0 0 0
API調(diào)用:
client.cmd('*','cmd.run',['free -m])
(3)cp模塊
功能:實現(xiàn)遠程文件、目錄的復(fù)制,以及下載URL文件等操作。
示例:
salt '*' cp.cache_local_file /etc/hosts #將指定被控主機的/etc/hosts文件復(fù)制到被控主機本地的salt cache目錄(/var/cache/salt/minion/localfiles) 781915e2: /var/cache/salt/minion/localfiles/etc/hosts salt '*' cp.get_dir salt://path/to/dir/ /minion/dest #將主服務(wù)器file_roots指定位置下的目錄復(fù)制到被控主機,salt:// 第一個‘/’為 配置文件base指定的根,第二個為路徑分割符 781915e2: salt '*' cp.get_file salt://path/to/file /minion/dest #將主服務(wù)器file_roots指定位置下的文件復(fù)制到被控主機 781915e2: salt '*' cp.get_url http://www.baidu.com /tmp/index.html #下載URL內(nèi)容到被控主機指定位置 781915e2: /tmp/index.html
API調(diào)用:
client.cmd('*','cp.get_file',['salt://path/to/file ',' /minion/dest'])
(4)cron模塊
功能:實現(xiàn)被控主機的crontab操作
示例:
salt '*' cron.raw_cron root #查看指定被控主機、root用戶的crontab清單 781915e2: #secu-tcs-agent monitor, install at Sat Mar 18 15:55:40 CST 2017 * * * * * /usr/local/sa/agent/secu-tcs-agent-mon-safe.sh /usr/local/sa/agent > /dev/null 2>&1 */1 * * * * /usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 & */20 * * * * /usr/sbin/ntpdate ntpupdate.tencentyun.com >/dev/null & 30 2 * * * /www/server/panel/certbot-auto renew >> /www/server/panel/logs/certbot.log salt '*' cron.set_job root '*' '*' '*' '*' 1 /usr/local/weekly #為指定的被控主機、root用戶添加/usr/local/weekly任務(wù)作業(yè) 781915e2: new salt '789880e2' cron.rm_job root /usr/local/weekly #刪除指定的被控主機、root用戶crontab的/usr/local/weekly任務(wù)作業(yè) 781915e2: removed
API調(diào)用:
client.cmd('*','cron.set_job,['root','*','*','*','*','*','/usr/echo'])
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。