自动化运维工具 SaltStack(二) grains 和 pillar 模块的概念及使用

本文详细介绍了SaltStack中的Grains和Pillar概念,包括它们的用途、如何自定义、以及如何在配置管理和目标匹配中使用。Grains作为静态数据存储在minion端,用于信息查询和目标匹配;Pillar则动态存储在master端,用于保存敏感信息,更适用于配置管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Grains概念

Grains是SaltStack的一个组件,存放在SaltStack的minion端。

当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当minion重启时才会进行数据的更新。

由于grains是静态数据,因此不推荐经常去修改它。

应用场景:

信息查询,可用作CMDB。
在target中使用,匹配minion。
在state系统中使用,配置管理模块

信息查询

用于查询minion端的IP、FQDN等信息。
默认可用的grains:
# salt '*' grains.ls	
查看每一项的值:
# salt '*' grains.items
取单项的值:
# salt server3 grains.item ipv4
# salt server3 grains.item fqdn

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
2.在这里插入图片描述3.在这里插入图片描述在这里插入图片描述

自定义grains项

/etc/salt/minion中定义:
# vim /etc/salt/minion
grains:
  roles:
    - apache
    - httpd
重启salt-minion,否则数据不会更新:
# systemctl  restart salt-minion
/etc/salt/grains中定义:
# vim /etc/salt/grains:
deployment:  datacenter1
同步数据:
# salt server3 saltutil.sync_grains
查询自定义项:
# salt server3 grains.item deployment

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

编写grains模块

 在salt-master端创建_grains目录:
# mkdir /srv/salt/_grains
# vim /srv/salt/_grains/my_grain.py
def my_grain():
    grains = {}
    grains['roles'] = 'nginx'
    grains['hello'] = 'world'
    return grains
# salt '*' saltutil.sync_grains	#同步grains到minion端

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

grains匹配运用

在target中匹配minion:
# salt -G roles:apache cmd.run hostname
在top文件中匹配:
# vim /srv/salt/top.sls
base:
  'roles:apache':
    - match: grain
    - apache.install

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

pillar概念

pillar和grains一样也是一个数据系统,但是应用场景不同。

pillar是将信息动态的存放在master端,主要存放私密、敏感信息(如用户名密码等),而且可以指定某一个minion才可以看到对应的信息。

pillar更加适合在配置管理中运用。

声明pillar

定义pillar基础目录:
# vim /etc/salt/master
pillar_roots:
  base:
    - /srv/pillar
# mkdir /srv/pillar
重启salt-master服务:
# /etc/init.d/salt-master restart

在这里插入图片描述

自定义pillar项

# vim /srv/pillar/top.sls
base:
  '*':
    - packages
# vim /srv/pillar/apache.sls
{% if grains['fqdn'] == 'server3' %}
package: httpd
{% elif grains['fqdn'] == 'server2' %}
package: mairadb
{% endif %}
刷新pillar数据:
# salt '*' saltutil.refresh_pillar
查询pillar数据:
# salt '*' pillar.items
# salt '*' grains.item  roles

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

pillar数据匹配(如何使用)

命令行中匹配:
# salt -I 'roles:apache' test.ping
state系统中使用:
# vim /srv/salt/apache.sls
apache:
  pkg.installed:
    - name: {{ pillar['package'] }}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
OSZAR »