saltstack提供了非常豐富的功能模組,涉及作業系統的基礎功能,常用工具支援等,更多模組資訊見官網模組介紹: 當然,也可以通過sys模組列出當前版本支援的模組。命令如下:
#salt '*' sys.list_modules
api的原理是通過呼叫master client模組,例項化乙個localclient物件,再呼叫cmd()方法來實現的,以下是api實現test.ping的示例:
import salt.client
client = salt.client.localclient()
ret = client.cmd('*','test.ping')
print ret
其結果以乙個標準的python字典形式的字串返回,可以通過eval()函式轉換成python的字典型別,方便後續的業務邏輯處理,程式執行結果如下:
另一例子:
>>> import salt.client
>>> local = salt.client.localclient()
>>> local.cmd('*', 'cmd.run', ['whoami'])
其它模組如:
salt '*' archive.gunzip /tmp/sourcefile.txt.gz #支援gunzip、gzip、rar、tar、unrar、unzip等。
salt '*' archive.gzip /tmp/sourcefile.txt
api呼叫:client.cmd('*','archive.gunzip',['/tmp/sourcefile.txt.gz'])
salt '*' cmd.script salt://script/test.sh #該命令會做兩個動作:首先同步test.sh到minion的cache目錄(如同步到/var/cache/salt/minion/files/base/script/test.sh);其次執行該test.sh指令碼
#將指定被控主機的/etc/hosts檔案複製到被控主機本地的salt cache目錄(/var/cache/salt/minion/localfiles/)
salt '*' cp.cache_local_file /etc/hosts
#將主伺服器file_roots指定位置下的目錄複製到被控主機
salt '*' cp.get_dir salt://path/to/dir/ /minion/dest
#將主伺服器file_roots指定位置下的檔案複製到被控主機
salt '*' cp.get_file salt://path/to/file /minion/dest
salt '*' cp.get_url /tmp/index.html
api呼叫:client.cmd('hudson','cp.get_file',['salt://path/to/file' , '/minion/dest'])
salt '*'
Ansible常用模組及API
安裝epel作為安裝ansible的yum源 centos6.4 安裝ansible yum install ansible y 配置檔案 路徑 etc ansible hosts 配置說明 webservers為組名,下面的ip或網域名稱則是屬於該組的主機。webservers 192.168.1...
SaltSack入門(四)Salt常用模組使用
以下用一些例項說明salt一些常用的模組,進一步熟悉salt使用。pkg模組 1 安裝乙個軟體 vim pkg.installed name vim enhanced2 安裝多個軟體 vim pkg.installed names 多個值時,要修改為複數,names vim enhanced lrz...
Python shutil模組 常用api速查表
api args annotation shutil.copy src,dst 將檔案src複製到檔案或目錄dst。shutil.copytree src,dst,symlinks false,ignore none 以遞迴方式複製以src為根的整個目錄樹。目標目錄dst必須不存在 它和父目錄將一起...