自定义grains_module pillar

转载于:http://blog.liuts.com/page/1/1/

自定义grains_module
1)#vi /srv/salt/_grains/nginx_config.py

view plainprint?

  1. import os,sys,commands  

  2.   

  3. def NginxGrains():  

  4.     ''' 

  5.         return Nginx config grains value 

  6.     '''  

  7.     grains = {}  

  8.     max_open_file=65536  

  9.     #Worker_info={'cpus2':'01 10','cpus4':'1000 0100 0010 0001','cpus8':'10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001'}  

  10.     try:  

  11.         getulimit=commands.getstatusoutput('source /etc/profile;ulimit -n')  

  12.     except Exception,e:  

  13.         pass  

  14.     if getulimit[0]==0:  

  15.         max_open_file=int(getulimit[1])  

  16.     grains['max_open_file'] = max_open_file  

  17.     return grains  


2)同步grains模块
salt '*' saltutil.sync_all

3)刷新模块(让minion编译模块)
salt '*' sys.reload_modules

4)验证max_open_file key的value
[root@SN2013-08-020 _grains]# salt '*' grains.item max_open_file              
SN2013-08-022:
  max_open_file: 1024
SN2013-08-021:
  max_open_file: 1024
SN2012-07-011:
  max_open_file: 1024
SN2012-07-012:
  max_open_file: 1024
SN2012-07-010:
  max_open_file: 1024

配置pillar
    本例使用分组规则定义pillar,即不同分组引用各自的sls属性
1)定义入口top.sls
#vi /srv/pillar/top.sls

  1. base:  

  2.   web1group:  

  3.     - match: nodegroup  

  4.     - web1server  

  5.   web2group:  

  6.     - match: nodegroup  

  7.     - web2server  


2)定义私有配置,本例只配置web_root的数据,当然可以根据不同需求进行定制,格式为python的字典形式,即"key:value"。
#vi /srv/pillar/web1server.sls 

  1. nginx:  

  2.     root: /www  


#vi /srv/pillar/web2server.sls 

  1. nginx:  

  2.     root: /data  


3)验证配置结果:
#salt 'SN2013-08-021' pillar.data nginx
SN2013-08-021:
    ----------
    root:
        /data

#salt 'SN2012-07-010' pillar.data nginx 
SN2012-07-010:
    ----------
    root:
        /www


你可能感兴趣的:(mongodb,pillar,grains_module)