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 可以在我们后期使用中发挥很大的作用,关于其更深入的使用后续会持续更新。