grains      #收集设备的所有信息

grains是在minion启动时收集到的一些信息,比如操作系统类型、网卡ip、内核版本、CPU架构等。 

使用命令

salt 'client.wyp.com' grains.ls 列出所有的grains项目名字

salt 'client.wyp.com' grains.items 列出所有grains项目以及值

grains的信息并不是动态的,并不会时时变更,它只是在minion启动时收集到的。

我们可以根据grains收集到的一些信息,做配置管理工作。

grains支持自定义信息。


自定义grains

client上:

vim   /etc/salt/minion  

添加或更改:

grains:

  role:

    - nginx

  env:

    - test

或者

vim /etc/salt/grains

添加:

role: nginx  #注意空格,前面自定义的名字,后面为值。

env: test


重启minion服务

在server上获取grains:

salt '*' grains.item role env

salt 'client.wyp.com'  grains.get  role


grains其实在远程执行命令时,很方便。我们可以按照grains的一些指标来操作。比如把所有的web服务器的grains的role设置为nginx,那这样我们就可以批量对nginx的服务器进行操作了:

salt -G role:nginx cmd.run 'hostname'

salt -G os:CentOS cmd.run 'hostname'