以ubuntu爲例 salt 所有模塊文件置於以下目錄中:html
<pre> /usr/share/pyshared/salt/ </pre>ubuntu
在已定義的 file_roots 中,建立一個 _modules/ 目錄,咱們要擴展的外部模塊就編寫在這個目錄下,(具體位置參見配置文件: /etc/salt/master)ide
描述一下這個模塊的功能:檢查 /etc/hostname /etc/resolv.conf 這兩個文件的 attr 屬性ui
/srv/salt/_modules/getattr.pyhtm
<pre> import os import popen2 def run(): cmd = "lsattr /etc/hostname /etc/resolv.conf" child=os.popen(cmd) data = child.read() return data </pre>md5
<pre> salt '*' saltutil.sync_modules </pre>get
命令執行完畢後,能夠看到getattr.py被分發到minions主機的以下位置cmd
<pre> /var/cache/salt/master/roots/hash/base/_modules/getattr.py.hash.md5 /var/cache/salt/minion/files/base/_modules/getattr.py /var/cache/salt/minion/extmods/modules/getattr.py </pre>hash
<pre> salt '*' getattr.run </pre>it
命令執行成功後返回信息以下:
<pre> salt-master: -------------e- /etc/hostname -------------e- /etc/resolv.conf </pre>