阿里山QQ

导航

自定义模块和grains

一、自定义模块

saltstack有很多模块,模块的源码文件是在salt项目的:salt/modules.py;

salt linux-node2-computer sys.doc   查看有哪些module

 

这里file_roots还是/srv/salt/base目录,自定义模块步骤如下:

#新建自定义模块的目录_modules和模块文件
[root@linux-node1 _modules]# pwd
/srv/salt/base/_modules
[root@linux-node1 _modules]# cat f1.py 
def charles():
    return 'date'

#将模块同步到指定客户端
salt '*' saltutil.sync_all


#使用
[root@linux-node1 _modules]# salt '*' f1.charles
linux-node2-computer:
    date
linux-node1.oldboyedu.com:
    date

 

二、自定义grains

自定义grains也是使用脚本实现的,grains的源码文件是salt项目的salt/grains.py

自定义grains步骤如下:

#新建_grains目录,并创建grains文件
[root@linux-node1 base]# cd _grains/
[root@linux-node1 _grains]# ls
file.py
[root@linux-node1 _grains]# cat file.py 
import os
def file():
    grains={}
    file = os.popen('ulimit -n').read()
    grains['file']=file
    return grains


#同步grains到客户端
salt '*' saltutil.sync_all


#运行
root@linux-node1 _grains]# salt '*' grains.item file
linux-node2-computer:
    ----------
    file:
        1024
linux-node1.oldboyedu.com:
    ----------
    file:
        8192

 

 

一个grains文件中可以定义多个grains item

[root@linux-node1 _grains]# vim g1.py

def g_func():
    grains = {}
    grains['charles'] = 'charles'
    grains['qq'] = 'QQ'
    return grains


[root@linux-node1 _grains]# salt '*' grains.item charles
linux-node2-computer:
    ----------
    charles:
        5
linux-node1.oldboyedu.com:
    ----------
    charles:
        charles
[root@linux-node1 _grains]# salt '*' grains.item qq
linux-node2-computer:
    ----------
    qq:
        QQ
linux-node1.oldboyedu.com:
    ----------
    qq:
        QQ

 

 

 

 

  

posted on 2017-06-08 14:31  阿里山QQ  阅读(151)  评论(0编辑  收藏  举报