简单来说grains就是收集客户端的静态信息,然后返回给服务端,但是只有重启了salt-minion,客户端采取会去收集东西。

1、先看默认都有哪些信息。salt '*' grains.items显示所有.

saltstack grains模块自定义_第1张图片

可以看到很多客户端的相关信息,但是有时候我们需要自己自定义去收集信息,那么我们就要自己去定义这个模板了。举一个收集客户端ulimit -n的例子。

步骤

1、vim /etc/salt/master

file_roots:

  base:

    - /srv/salt/

2、建立自定义模块:

cd /srv/salt

mkdir _grains

cd _grains

3、定义模块:

[root@www _grains]# cat file.py 

import os

def file():

    grains={}

    file = os.popen('ulimit -n').read()

    grains['file']=file

    return grains

#注意,定义grains的适合是一Key和value的字典方式存储的

4、推送到客户端:

salt '*' saltutil.sync_all

5、检测结果:

root@www _grains]# salt '*' grains.items

www.oms.com:

    ----------

    SSDs:

    file:

        1024

        

    mdadm:

可以看到已经成功返回了这个结果,这个就可以很灵活的让我们收集到客户端的信息