saltstack(4)---grains和pillar

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

[root@server1 salt]# salt server2 grains.ls			#列出所有key
[root@server1 salt]# salt server2 grains.ls | wc -l
[root@server1 salt]# salt server2 grains.item shell
[root@server1 salt]# salt server2 grains.item username

1、定义grains-在命令端
(1)minion端配置文件中定义(静态)

[root@server2 salt]# vim minion
grains:
  roles: apache
[root@server2 salt]# systemctl restart salt-minion.service 

在这里插入图片描述

[root@server1 salt]# salt server2 grains.item roles		#查看创建成功
server2:
    ----------
    roles:
        apache
[root@server1 salt]# salt -G 'roles:apache' test.ping		#查看角色匹配
server2:
    True

在这里插入图片描述
(2)在命令端创建/ec/salt/grains文件
不改主配置文件不需要重启但需要同步

[root@server4 salt]# cat grains
roles:
  nginx

[root@server1 salt]# salt server4 saltutil.sync_grains
server4:
[root@server1 salt]# salt server4 grains.item roles
server4:
    ----------
    roles:
        nginx

在这里插入图片描述

2、定义grains-在server端(静态)

[root@server1 _grains]# vim my_grain.py
[root@server1 _grains]# cat my_grain.py
def my_grain():
  grains = {}
  grains['roles'] = 'nginx'
  grains['hello'] = 'world'
  return grains
[root@server1 _grains]# salt '*' saltutil.sync_grains
[root@server1 _grains]# salt '*' grains.item hello
server4:
    ----------
    hello:
        world
server2:
    ----------
    hello:
        world

在这里插入图片描述
3、在top文件中匹配:
vim /srv/salt/top.sls
base:
‘roles:apache’:
- match: grain
- apache.install
二、pillar:不需要同步直接应用
pillar和grains一样也是一个数据系统,但是应用场景不同。
pillar是将信息动态的存放在master端,主要存放私密、敏感信息(如用户名密码等),而且可以指定某一个minion才可以看到对应的信息。
pillar更加适合在配置管理中运用。
1、定义

[root@server1 srv]# mkdir pillar
[root@server1 srv]# cd pillar/
[root@server1 pillar]# cat web.sls 
{% if grains['fqdn'] == 'server2' %}
webserver: httpd
git: git
{% elif grains['fqdn'] == 'server4' %}
webserver: nginx
{% endif %}

port: 80
[root@server1 pillar]# cat top.sls 
base:
  '*':
    - web

在这里插入图片描述
2、引用
命令行中匹配:

#salt -I 'roles:apache' test.ping

state系统中使用:

#vim /srv/salt/apache.sls
apache:
  pkg.installed:
    - name: {{ pillar['package'] }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值