以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>