Saltstack系列4:Saltstack之Grains组件

建站服务器 grains说明

grains是Saltstack最重要的组件之一,grains的作用是手机被控主机的基本信息,这些信息通常都是一些静态类的数据,包括CPU、内核、操作系统、虚拟化等,在服务器端可以根据这些信息进行灵活定制,管理员可以利用这些信息对不同业务进行个性化定制。

白水网站建设公司创新互联,白水网站设计制作,有大型网站制作公司丰富经验。已为白水上千家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的白水做网站的公司定做!

例:(janja模板)

{%ifgrains['os']=='Ubuntu'%}
host:{{grains['host']}}
{%elifgrains['os']=='CentOS'%}
host:{{grains['fqdn]}}
{%endif%}
grains常用操作命令

匹配内核版本为2.6.32-358.14.1.el6.x86_64的主机

salt-G'kernelrelease:2.6.32-358.14.1.el6.x86_64'cmd.run'uname-a'

获取所有主机的grains项信息

salt'*'grains.ls
定义grains数据

定义grains数据的方法有两种,一种为在被控主机定制配置文件:另一种是通过主控端扩展模块API实现。区别是模块更灵活,可以通过Python编程动态定义,而
配置文件只适合相对固定的键与值。下面分别进行说明:

1、被控端主机定制grains数据

【/etc/salt/minion】

default_include:minion.d/*.conf#自定义grains配置文件路径

grains配置文件:【/etc/salt/minion.d/hostinfo.conf】

grains:
roles:
-webserver
-memcache
deployment:datacenter4
cabinet:13

重启salt-minion使之生效: service salt-minion restart
验证:

salt'wx'grains.itemrolesdeploymentcabinet

结果:

salt'wx'saltutil.sync_all

结果:文件同步到被控端的cache目录中

/var/cache/salt/minion/extmods/grains/grains_openfile.py
/var/cache/salt/minion/files/base/_grains/grains_openfile.py
#注:/var/cache/salt/minion/extmods/grains/为扩展模块文件最终存放位置,刷新模块后将在同路径下生产字节码pyc;/var/cache/salt/minion/files/base/_grains/为临时存放位置。

刷新模块:

salt'wx'sys.reload_modules
#生成pyc字节码
/var/cache/salt/minion/extmods/grains/grains_openfile.py
/var/cache/salt/minion/extmods/grains/grains_openfile.pyc
/var/cache/salt/minion/files/base/_grains/grains_openfile.py

验证:

salt'wx'grains.itemmax_open_file

结果:

wx:
----------
max_open_file:
1024

参考资料:

根据刘天斯《Python自动化运维技术与实践》整理


当前文章:Saltstack系列4:Saltstack之Grains组件
路径分享:http://scyanting.com/article/cpdsej.html