开始编写一个Salt模块

编写模块

简述

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

参考

A guide on how to write Salt modules

相关文章
相关标签/搜索