saltstack 数据系统之 grains 简单学习

saltsatck 主要的使用场景有两个

1.远程执行

2.配置管理

3.云管理

目前云管理还不太成熟,所以现在使用最多的就是前两个。接下来要分析的就是salt 里面非常重要的两个数据系统 grains、pillar 之一的 grains。

grains 是minion 端获取客户端本地相关信息,在每次 minion 启动的时候获取一次,可以理解为静态信息,像 ip,主机名,CPU等等信息都会获取。

一些关于 grains 的命令:

salt  'host2'  grains.ls    # 获取host2中都有哪些 grains 信息

salt  'host2'  grains.items    # host2 主机中所有的grains 详细信息

salt  'host2'  grains.item  os    # 查看某一条 grains 信息,也可以使用  grains.get  os 

实际中我们比较常用的是自定义客户端的 grains 信息,比如定义角色,方法很简单,只要在 minion 端的配置文件中关于 grains 的地方注释去掉即可

grains:

  role: nginx

  env: test

配置完重启minion ,再在 master 上 使用 salt  'host2' grains.get  role  就可以得到 nginx 的返回。

还有一种比较常用的自定义 grains 信息是使用文件方式,在/etc/salt/下新建 grains 文件,文件使用 yaml 格式,比如上面的配置写到文件中如下:

role: nginx

env: test

使用 grains 的地方非常多,比如你指定目标的时候可以使用 grains :

salt  -G  'role:nginx'  cmd.run  'uptime'    #  在grains 角色为 nginx 的所有主机上执行命令 uptime

grains 可以在我们后期使用中发挥很大的作用,关于其更深入的使用后续会持续更新。

原文地址:https://www.cnblogs.com/sqtu/p/6439842.html