有关grains在http://blog.51cto.com/12107790/2317369已经简单介绍过,官方文档介绍的也很少。
grains是描述minion的静态数据,数据包括系统运行状态、cpu信息、网络信息。可以自行设置grains来为minions进行分组和管理。
grains是在minions启动时加载并缓存在内存中。
列出minion的grains项
[root@Management-Machine-140 salt]# salt '136' grains.ls 136: - SSDs - cpu_flags - cpu_model - cpuarch - domain - edit
列出minion的grains项和值
[root@Management-Machine-140 salt]# salt '136' grains.items 136: ---------- cpu_model: Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz cpuarch: x86_64 domain: edit:
列出minion的grains指定项目的值
[root@Management-Machine-140 salt]# salt '136' grains.item init 136: ---------- init: upstart [root@Management-Machine-140 salt]#
自定义grains项方法
1.在minion的配置文件中定义/etc/salt/minion。不建议使用。
2.将自定义的grains写入minions端 /etc/salt/grains文件中,独立存储便于查找,通过grains模块编写grains。
编写grains数据项和值
单个数据项和值 [root@Management-Machine-140 salt]# salt '136' grains.setval my_grain bar 136: ---------- my_grain: bar 多个数据项和值 [root@Management-Machine-140 salt]# salt '136' grains.setvals "{'key1':'var1','key2':'var2'}" 136: ---------- key1: var1 key2: var2 单个数据项和多个值 [root@Management-Machine-140 salt]# salt '136' grains.setval my_grain_dict '["one","two","three"]' 136: ---------- my_grain_dict: - one - two - three master端查询 [root@Management-Machine-140 salt]# salt '136' grains.item my_grain_dict 136: ---------- my_grain_dict: - one - two - three [root@Management-Machine-140 salt]# minion端查询 [root@WebA-136 ~]# cat /etc/salt/grains edit: yan env: test key1: var1 key2: var2 my_grain: bar my_grain_dict: - one - two - three role: nginx test: test 删除grains项目和值 [root@Management-Machine-140 salt]# salt '136' grains.delval my_grain_dict 136: None [root@Management-Machine-140 salt]# 查询 [root@WebA-136 ~]# cat /etc/salt/grains edit: yang env: test key1: var1 key2: var2 my_grain: bar my_grain_dict: null role: nginx test: test [root@WebA-136 ~]#