1.什么是grains:(静态数据,minion启动时采集)

 

Grains

Static bits of information that a minioncollects about the system when the minion first starts.

The grains interface is made available toSalt modules and components so that the right salt minion commands areautomatically available on the right systems.

 

以上是官方的解释,大致意思是说grainsminion第一次启动的时候采集的静态数据,可以用在salt的模块和其他组件中。其实grains在每次的minion启动(重启)的时候都会采集,即向master汇报一次的。



应用场景:

 grains的特性–每次启动汇报、静态决定了它没有pillar灵活,要知道pillar是随时可变的,只要在master端修改了那一般都会立刻生效的。所以grains更适合做一些静态的属性值的采集,例如设备的角色(role),磁盘个数(disk_num)等诸如此类非常固定的属性。

 

 那么我们就可以得到一个大致的判断,如果你想定义的属性值是经常变化的,那请采用pillar,如果是很固定、不易变的那请用grains



grain和pillar区别

1.grains存储的是静态、不常变化的内容,pillar则相反

2.grains是存储在minion本地,而pillar存储在master本地

3.minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改


相关命令:

salt '*' grains.ls #列出grains的所有key

 

salt * grains.items # 查看所有grains信息,查看所有item



salt '*' grains.item fqdn #查看单个item


配置

1 minion配置

vi /etc/salt/grains

cloud: openstack


重启minion使其生效


salt '*' grains.get cloud