SaltStack自动化运维——grains(静态数据)与pillar(动态参数)详解

1.什么是grains?

Grains是SaltStack的一个组件,存放在SaltStack的minion端。
当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当minion重启时才会进行数据的更新。
由于grains是静态数据,因此不推荐经常去修改它。
应用场景:
信息查询,可用作CMDB。
在target中使用,匹配minion。
在state系统中使用,配置管理模块。

2.什么是pillar?

pillar和grains一样也是一个数据系统,但是应用场景不同。
pillar是将信息动态的存放在master端,主要存放私密、敏感信息(如用户名密码等),而且可以指定某一个minion才可以看到对应的信息。
pillar更加适合在配置管理中运用。

3.grains实验过程

在server1上可以直接利用grains采集静态数据:
默认可用的grains:查询minion端的IP、FQDN等信息

salt '*' grains.ls	##查看每一项的值
salt server2 grains.item ipv4	##取单项的值

在这里插入图片描述
(2)自定义grains项
在minion端设置开启grains,重启salt-minion,否则数据不会更新
在这里插入图片描述
在这里插入图片描述
(3)在server1上通过grains查看角色
在这里插入图片描述
(4)在server3/etc/salt/grains中定义
在这里插入图片描述

salt server3 saltutil.sync_grains	##同步数据
salt server3 grains.item roles	##查询自定义项

在这里插入图片描述
(5)编写grains模块
在salt-master端创建_grains目录
在这里插入图片描述
在这里插入图片描述
(6)在server1上测试,grains匹配运用
在这里插入图片描述
进入缓存目录,可以发现扩展模块
在这里插入图片描述

salt server2 saltutil.sync_grains	#同步grains到minion端

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在target中匹配minion:
在这里插入图片描述
(7)编辑全局推送的脚本,使用角色进行测试
在这里插入图片描述
在这里插入图片描述
(8)推送
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.pillar的实验过程

在master节点上面设置
定义pillar基础目录:

vim /etc/salt/master
pillar_roots:
  base:
    - /srv/pillar
mkdir /srv/pillar

重启salt-master服务
在这里插入图片描述
在这里插入图片描述

vim /srv/pillar/apache.sls
{% if grains['fqdn'] == 'server2' %}
package: httpd
{% elif grains['fqdn'] == 'server3' %}
package: nginx
{% endif %}

在这里插入图片描述
在这里插入图片描述

刷新pillar数据:
salt '*' saltutil.refresh_pillar

在这里插入图片描述

查询pillar数据:
salt '*' pillar.items
salt '*' pillar.item  roles
命令行中匹配:
salt -I 'package:nginx' cmd.run hostname

在这里插入图片描述
进入缓存目录查看
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值