saltstack之(五)数据系统Grains和Pillar

一、grains

1.什么是grains
grains:存储minion端的信息,包括一些网络、硬件等信息,保存在minion端。一般为静态信息,非经常变化的数据。

2.grains的使用:
获取minion端信息
salt ‘192.168.3.1‘ grains.items --获取minion端所有的grains信息。
salt ‘192.168.3.1‘ grains.item fqdn --通过grains.item获取minion端的fqdn信息。
salt ‘192.168.3.1‘ grains.get fqdn --通过grains.get获取minion端的fqdn信息。

匹配salt的target
salt -G ‘os:CentOS‘ cmd.run ‘uptime‘ --匹配minion端OS为CentOS的执行uptime命令。

3.自定义grains(*重启才能获取grains信息)
1)编辑/etc/salt/minion定义grains信息。
[[email protected] ~]# grep -A 1 ^grains /etc/salt/minion
grains:
roles: zabbix-agent
[[email protected] ~]# salt ‘192.168.3.1‘ grains.item role
192.168.3.1:
----------
role:
zabbix-agent

2)单独的文件定义存储grains信息。(/etc/salt/grians)
[[email protected] ~]# cat /etc/salt/grains
role: nginx
[[email protected] ~]# salt ‘192.168.3.1‘ grains.item role
192.168.3.1:
----------
role:
nginx
3)在top.sls文件中使用grains
[[email protected] ~]# cat /etc/salt/top.sls
base:
‘role:nginx‘:
- match: grains
- init
*注释:建议使用单独的文件自定义grains的值,切勿多处定义。
4.使用工具刷新grains
[[email protected] ~] salt ‘*‘ saltutil.sync_grains

二、pillar
1.什么是pillar
pillar: 存储在master端,存放需要提供给minion的信息。常用于敏感信息,每个minion只能访问master分配给自己的pillar信息,更多的是经常动态的变化信息。

2.pillar的使用:
获取master端pillar的数据信息
salt ‘*‘ pillar.items|data

3.自定义pillar信息
[[email protected] ~]# grep -A 2 ^pillar /etc/salt/master
pillar_roots:
base:
- /srv/pillar
[[email protected] ~] mkdir /srv/pillar && cd /srv/pillar
[[email protected] pillar]# cat zabbix.sls
zabbix_server: 192.168.3.1
[[email protected] pillar]# cat top.sls
base:
‘192.168.3.1‘:
- zabbix
4.使用saltutil工具的saltutil.refresh_pillar刷新pillar的值
[[email protected] pillar]# salt ‘*‘ saltutil.refresh_pillar
192.168.3.1:
True
node2.xkops.com:
True
5.获取在pillar中自定义的zabbix_server的值
[[email protected] pillar]# salt ‘*‘ pillar.data zabbix_server
node2.xkops.com:
----------
192.168.3.1:
----------
zabbix_server:
192.168.3.1

6.匹配salt的target
salt -I ‘zabbix_server:192.168.3.1‘ test.ping

总结:
grains和pillar的区别
1.grains是静态、不常变化的;pillar则是动态的。
2.grains是存储在minion本地,而pillar存储在master本地。
3.minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改。

时间: 2024-08-03 06:17:17

saltstack之(五)数据系统Grains和Pillar的相关文章

SaltStack实战之数据系统 Grains VS Pillar

SaltStack实战之数据系统 Grains VS Pillar 学习 SaltStack SaltStack实战之数据系统 Grains VS Pillar 名称 存储位置 数据类型 数据采集更新方式 应用 Grains Minion端 静态数据 Minion启动时采集,也可以使用saltutil.sync_grains进行刷新. 存在Minion基本数据.比如用于匹配Minion,自身数据可以用来做资产管理等. Pillar Master端 动态数据 在Master端定义,指定给对应的Mi

SaltStack实战之数据系统-Grains

SaltStack实战之数据系统-Grains 学习 SaltStack SaltStack实战之数据系统-Grains 1. Grains应用场景 2. Grains应用示例 1. Grains应用场景 Grains可以在state系统中使用,用于配置管理模块. Grains可以在target中使用,用来匹配minion,比如匹配操作系统,使用-G选项. Grains可以用于信息查询,Grains保存着收集到的客户端的详细信息. 2. Grains应用示例 minion配置grains: 方法

SaltStack数据系统之Grains、Pillar

SaltStack数据系统之Grains.Pillar 1.什么是Grains? Grains是saltstack的组件,用于收集salt-minion在启动时候的信息,又称为静态信息.Grains是服务器的一系列粒子信息,也就是服务器的一系列物理,软件环境信息.在执行salt的sls时候可以根据Grains信息的不同对服务器进行匹配分组,例如可以根据系统是centos服务器跟系统是redhat环境的安装不同的软件包.Grains功能:1.收集资产信息 2.信息查询 官方文档:https://d

【2】Saltstack handbook:Grains and Pillar

写在前面的话 上一节谈及了 Saltstack 的安装和初始化配置,本节将谈谈 Saltstack 中两个重要的东西,Grains 和 Pillar. 数据系统 Grains 入门 Grains 是静态数据,其数据来源于 Minion 启动的时候收集的有关客户端本地的相关信息. 包括操作系统,内核,CPU,内存,硬盘,设备型号等等.这就意味着我们可以使用 Saltstack 做资产管理. 这些静态数据除非是  Minion 重启或者 Master 端主动同步更新,否则不会改变. 1. 查看 gr

自动化运维Saltstack系列(三)之YAML和自定义Grains、Pillar

先来看看Saltstack的配置文件 Master [[email protected] ~]# vim /etc/salt/master Minion [[email protected] ~]# vim /etc/salt/minion 两者里面的配置项大同小异,其中master是我们需要重点配置的对象 大部分配置都可以保持默认无需改动,在部署大规模Saltstack环境需要自定义一些参数的时候才需要根据实际需求修改:其中一些比较重要的配置项: publish_port: 4505 # Sa

Saltstack系列:Saltstack的Grains和Pillar

Grains和Pillar的用途: Grains : 用于存储minion的基本数据信息: Pillar : 用于存储master分配给minion的数据信息. Grains和Pillar的存储区域: Grains : 元数据存储在minion端: Pillar : 元数据存储在master端. Grains和Pillar的更新方式: Grains : 在minion启动时进行更新: Pillar : 元数据存储在master端,使用 saltutil.refresh_pillar进行刷新,效率

SaltStack实战之数据系统-Pillar

SaltStack实战之数据系统-Pillar 学习 SaltStack SaltStack实战之数据系统-Pillar 1. Pillar简介和应用场景 2. Pillar应用示例 1. Pillar简介和应用场景 Pillar是Salt用来分发全局变量到所有minions的一个接口.Pillar data的管理类似于Salt State Tree. Salt 0.9.8版本增加了pillar(动态数据) 存储位置: 存储在master端,存放需要提供给minion的信息. 应用场景: 敏感信

saltstack grains与pillar使用和订制

一.grains与pillar简介 grains是minion启动时加载,在minion运行过程中不会发生变化,所以是静态数据.grains数据的定制可以在各minion端,也可以放在master端;grains中包含许多的信息,如:运行的内核版本,操作系统,网络接口地址,MAC地址,cpu,内存等等信息. Pillar是Salt用来分发全局变量到所有或指定minion的一个定制接口,所以相对grains来说可以称为动态的数据,保存在master端. 由于涉及的配置文件采用yaml格式,如果对y

saltstack第二波《数据系统》

第2章 saltstack数据系统 2.1 Grains 2.1.1 什么是Grains? Grains是saltstack的一个组件,它存放着minion启动时收集到的系统底层的详细信息,每次minion启动时,就会进行Grains的采集并保存下来,在以后的生命周期里面,除非你再次重启minion,否则Grains是不会重新收集的.Grains的信息是静态信息. 那么Grains会收集哪些信息呢?最好详细了解它的内容!grains与远程执行走的更近一些. Grains are collecte