SaltStack数据系统-Grans详解
1:Grains是系统的一个组件,存放着minion启动时收集的系统底层的一些信息,每次minion启动的时候,会进行系统的采集,将其保存下来,在以后的生命周期中不会重新搜集,除非重启~#
#查看grains搜集的所有的名称
salt 'node3.crazylinux.xyz' grains.ls
#查看grains搜集的所有的名称以及值
salt 'node3.crazylinux.xyz' grains.items
#获取fqdn名
salt 'node3.crazylinux.xyz' grains.get fqdn
2:Grains应用场景#
- grains可以在state系统中使用,用于配置管理模块
- grains可以在target中使用,用来匹配Minion,比如操作系统,使用-G选项
- grains可以用于信息查询,grains保存这收集到客户端的详细信息,可用作CMDB!
3:Grains应用示例(建议使用第二种方法)#
- 在node3Minion端自定义roles,共有两种方法
- 1:写在/etc/salt/minion配置文件中
vim /etc/salt/minion
#修改内容如下
grains:
roles: apache
env:
- webserver
#在master端使用如下命令进行测试
salt 'node3.crazylinux.xyz' grains.get env
#返回结果如下
node3.crazylinux.xyz:
- webserver
salt 'node3.crazylinux.xyz' grains.get roles
#返回结果如下
node3.crazylinux.xyz:
apache
- 2:写在/etc/salt/grains配置文件中
#直接定义角色名称和值就可以了,注意冒号后一定要有空格
cloud: openstack
#执行如下命令进行测试
salt 'node3.crazylinux.xyz' grains.get cloud
#返回结果如下
node3.crazylinux.xyz:
openstack
- 3:此时我们可以用角色匹配来执行命令,此时我们可以灵活使用grains来进行远程执行
salt -G roles:apache cmd.run 'uptime'
返回结果如下
node3.crazylinux.xyz:
23:04:21 up 5:45, 2 users, load average: 0.00, 0.01, 0.05
#也可以用来重启httpd服务
salt -G roles:apache cmd.run 'systemctl restart httpd'
- 4:也可以使用内置的grains
#此时将同时匹配node2和node3,在所有centos的系统中执行一个命令
salt -G os:CentOS cmd.run 'uptime'
#返回结果如下
node3.crazylinux.xyz:
23:06:48 up 5:47, 2 users, load average: 0.00, 0.01, 0.05
node2.crazylinux.xyz:
01:55:55 up 5:55, 2 users, load average: 0.00, 0.01, 0.05
作者:Devops、小铁匠
出处:https://www.cnblogs.com/skymyyang/p/8182485.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步