grains说明
grains是Saltstack最重要的组件之一,grains的作用是手机被控主机的基本信息,这些信息通常都是一些静态类的数据,包括CPU、内核、操作系统、虚拟化等,在服务器端可以根据这些信息进行灵活定制,管理员可以利用这些信息对不同业务进行个性化定制。
例:(janja模板)
grains常用操作命令
匹配内核版本为2.6.32-358.14.1.el6.x86_64的主机
获取所有主机的grains项信息
定义grains数据
定义grains数据的方法有两种,一种为在被控主机定制配置文件:另一种是通过主控端扩展模块API实现。区别是模块更灵活,可以通过Python编程动态定义,而
配置文件只适合相对固定的键与值。下面分别进行说明:
【/etc/salt/minion】
grains配置文件:【/etc/salt/minion.d/hostinfo.conf】
重启salt-minion使之生效: service salt-minion restart
验证:
结果:
首先在主控端编写python代码,然后将该python文件同步到被控端主机,最后刷新生效(即编译Python源码文件成字节码pyc)。
在主控端base目录(在/etc/salt/master中配置的file_roots项,默认在/srv/salt)下生成_grains目录执行install -d /srv/salt/_grains开始编写代码,实现获取被控主机系统允许最大打开文件数(ulimit -n)的grains数据
【/srv/salt/_grains/grains_openfile.py】
最后同步模块到指定被控主机并刷新生效,因为grains比较适合采集静态类的数据,比如硬件、内核信息等,当有动态类的功能需求时,需要进行刷新。
同步操作:
结果:文件同步到被控端的cache目录中
刷新模块:
验证:
结果:
参考资料:
根据刘天斯《Python自动化运维技术与最佳实践》整理
Original: https://www.cnblogs.com/andy6/p/11705022.html
Author: 张冲andy
Title: Saltstack系列4:Saltstack之Grains组件
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/551210/
转载文章受原作者版权保护。转载请注明原作者出处!