什么是Grains
Grains是SaltStack组件中非常重要的组件,在实际使部署配置中会经常使用到grains。Grains与Puppet中facter功能类似,存放minion启动时收集的静态信息,也可以理解为Grains记录每台minion的常用属性,例如CPU、内存、硬盘、网络等,在下次启动minion之前,grains收集的数据不会改变所以称之为静态信息。我们可以通过grains.items
查看某台或多台minion的grains信息。grains信息是在每台minion在启动时上报到master,在实际应用中,经常会根据实际业务需求,自定义grains,自定义grains方法如下:
- 通过minion配置文件定义
- 通过grains相关模块定义
- 通过python脚本定义
Grains常用操作
|
|
定义Grains
通过minion配置文件
通过文件定义Grains,有三种格式符合YAML格式的
Key:value
:os:CentOS
字典格式:ip_interfaces: {'lo': ['127.0.0.1'], 'em1': ['172.16.11.211'], em2: []}
多分行列表:
|
|
修改minion配置文件,将default_include: minion.d/*.conf
取消注释,并在/etc/salt/minion.d/
添加grains配置文件
|
|
重启minion,使自定义grains生效
|
|
通过grains模块定义
- 设置自定义granins
|
|
- 使用Grains.setvals同时设置多个grains
|
|
- 在_grains目录定义grains
使用默认的master的file_root配置路径 /srv/salt,那么_grains的位置是/srv/salt/_grains
,添加自定义grains item,注意的是python脚本返回值是一个字典。
|
|
在minin的/var/cache/salt/minion/extmods/grains
目录下,可以找到master下发的grains文件
- 删除自定义granins
|
|