saltstack数据系统之Grains,pillar

Grains

grains 负责采集客户端(minion端)一些基本信息 ,这个也完全可以自定义,可以在客户端自定义,然后自动汇报上来,也可以从服务器端定义然后推下去,采集完后再汇报上来(重启才收集),也可以使用saltutil.sync_grains进行刷新

1.grains之收集信息

[[email protected] salt]# salt ‘node1*‘ grains.ls

[[email protected] salt]# salt ‘node1‘ grains.items查看收集的所有信息

[[email protected] salt]# salt ‘node1‘ grains.get fqdn显示单个

node1:

node1

[[email protected] salt]# salt ‘node1‘ grains.item fqdn显示单个

node1:

----------

fqdn:

node1

[[email protected] salt]# salt ‘node1*‘ grains.get ip_interfaces:eth2

node1:

- 192.168.10.129

- fe80::20c:29ff:feca:35bf

2.grains之在指定服务器执行命令(-G匹配grains信息)

[[email protected] salt]# salt ‘node*‘ grains.get os

node2:

CentOS

node1:

CentOS

[[email protected] salt]# salt -G os:CentOS cmd.run ‘w‘  #与grains里存储的os信息匹配,匹配到的机器执行 w

node2:

14:46:45 up 15:04,  2 users,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT

root     tty1     -                12:27    2:19m  0.06s  0.06s -bash

root     pts/0    192.168.10.1     12:38   28:32   0.40s  0.29s bash

node1:

06:48:31 up 15:04,  2 users,  load average: 0.08, 0.04, 0.04

USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT

root     tty1     -                Wed15    2:19m  0.33s  0.01s bash

root     pts/0    192.168.10.1     04:40    1.00s  1.06s  0.39s /usr/bin/python

3.自定义信息

minion端自定义1:

[[email protected] ~]# vim /etc/salt/minion ###在node2自定义角色-webserver,memcache

grains:

roles:

- webserver

- memcache

[[email protected] ~]# /etc/init.d/salt-minion restart

测试:

[[email protected] salt]# salt -G ‘roles:memcache‘ cmd.run ‘echo hehe‘

node2:

hehe

注:在master端收集与grains里自定义的角色匹配的机器执行echo命令


minion端自定义2:

[[email protected] ~]# cat /etc/salt/grains   ###也可以在/etc/salt/grains自定义

web: nginx

[[email protected] ~]# /etc/init.d/salt-minion restart

测试

[[email protected] salt]# salt -G web:nginx cmd.run ‘w‘

node2:

14:59:37 up 15:17,  2 users,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT

root     tty1     -                12:27    2:32m  0.06s  0.06s -bash

root     pts/0    192.168.10.1     12:38    7.00s  0.47s  0.36s bash

将minion端自定义的grains信息与top.sls联系:

[[email protected] salt]# cat /srv/salt/apache.sls

apache-install:

pkg.installed:

- names:

- httpd

- httpd-devel

apache-service:

service.running:

- name: httpd

- enable: True

- reload: True

[[email protected] salt]# cat /srv/salt/top.sls

base:

‘web:nginx‘ :

- match: grain

- apache

[[email protected] salt]# salt ‘*‘ state.highstate

注:匹配web:nginx,使用grains匹配,匹配成功的执行apache.sls这个状态

Pillar

数据存储在master端,在master端定义,指定给对应的minion,可以使用saltutil.refresh_pillar刷新,常用于存储master指定的数据,只有指定的minion可以看到。用于敏感数据保存


1.系统默认pillar

[[email protected] ~]# vim /etc/salt/master

pillar_opts: Ture        #这里只是查看一下,查看之后将其关闭

[[email protected] ~]# /etc/init.d/salt-master restart

[[email protected] ~]# salt ‘*‘ pillar.items    #查看系统默认的pillar,key value的形式

[[email protected] ~]# salt ‘*‘ pillar.items

node1:

----------

master:

----------

__role:

master

auth_mode:

1

auto_accept:

False

cache_sreqs:

True

cachedir:

/var/cache/salt/master

cli_summary:

False

.......................................

2.自定义pillar

#编辑配置文件

[[email protected] ~]# vim /etc/salt/master

pillar_roots:

base:

- /srv/pillar

[[email protected] ~]# mkdir /srv/pillar

#写一个apache的状态

[[email protected] ~]# cat /srv/pillar/apache.sls

{% if grains[‘os‘] == ‘CentOS‘ %}

apache: httpd

{% elif grains[‘os‘] == ‘Debian‘ %}

apache: apache2

{% endif %}

注:使用grains收集信息,如果系统是centos,那么apache的名字就叫httpd。系统是Debian的时候,apache叫apache2


#写一个tops.sls

[[email protected] ~]# cat /srv/pillar/top.sls     #将定义的apache状态指定给所有minion

base:

‘*‘:

- apache

[[email protected] ~]# salt ‘*‘ saltutil.refresh_pillar刷新一下

node2:

True

node1:

True

[[email protected] ~]# salt ‘*‘ pillar.items

node1:

----------

apache:

httpd

node2:

----------

apache:

httpd

[[email protected] ~]# salt -I ‘apache:httpd‘ test.ping

node1:

True

node2:

True

时间: 2024-08-08 17:01:57

saltstack数据系统之Grains,pillar的相关文章

SaltStack数据系统之Grains、Pillar

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

saltstack 数据系统之 grains 简单学习

saltsatck 主要的使用场景有两个 1.远程执行 2.配置管理 3.云管理 目前云管理还不太成熟,所以现在使用最多的就是前两个.接下来要分析的就是salt 里面非常重要的两个数据系统 grains.pillar 之一的 grains. grains 是minion 端获取客户端本地相关信息,在每次 minion 启动的时候获取一次,可以理解为静态信息,像 ip,主机名,CPU等等信息都会获取. 一些关于 grains 的命令: salt  'host2'  grains.ls    # 获

saltstack数据系统之Grains

第一个应用场景:信息的搜集 [[email protected] salt]# salt 'linux-node1*' grains.ls              列出所有grains的名称 [[email protected] salt]# salt 'linux-node1*' grains.items           列出所有grains的内容 [[email protected] salt]# salt 'linux-node1*' grains.item fqdn linux-n

SaltStack数据系统

SaltStack数据系统 两种数据系统:Grains和Pillar 1.Grains介绍 Grains又被成为静态数据.Minion启动的时候收集的minion本地的相关信息(操作系统版本,内核版本,CPU,内存,硬盘,设备型号,序列号). Grains功能 (1)资产管理:信息查询 (2)用于目标选择 (3)配置管理中使用 2.查看grains 把所有grains里的key都列出来 [[email protected] /etc/salt]# salt 'linux-node1*' grai

【2】Saltstack handbook:Grains and Pillar

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

saltstack数据系统之Pillar

在master上面打开系统自带的pillar: [[email protected] ~]# vim /etc/salt/master 556 pillar_opts: True [[email protected] ~]# /etc/init.d/salt-master restart Stopping salt-master daemon:                               [确定] Starting salt-master daemon:            

SaltStack数据系统-Pillar详解

1:存储位置 存储在master端,存放需要提供给minion的信息 每个minion只能访问master分配给自己的(应用场景) 2:在centos7 salt 2015.5.10 (Lithium) 中pailar默认不是开启的,需要手动开启 vim /etc/salt/master #更改如下内容 pillar_opts: True 执行如下命令进行测试 salt "node3.crazylinux.xyz" pillar.items 3:启用pillars配置,套路和grain

saltstack grains pillar

本节讨论系统数据的两个方面:获取有关系统的数据以及将数据提供给系统. Salt 提供两个不同的子系统来分别执行这些任务: Grains. Pillar Grains Grains用于获取有关系统的数据.Grains 是有关底层操作系统,内存,磁盘和许多其他系统属性的静态信息. 当minion启动时会自动收集Grains,并定期刷新或使用远程命令刷新(salt '*' saltutil.sync_grains). Pillar pillar用户向你的系统提供数据.考虑配置一个简单系统是所需的不同自

saltstack 数据系统——Grains

grains收集信息: salt '*' grains.ls salt 'web13*' grains.items 也可以单个显示 salt '*' grains.item fqdn salt '*' grains.item server_id salt '*' grains.get ip_interfaces:eth0 grains匹配minion #比如查看所有centos的机器上执行uptime命令: salt -G os:centos cmd.run 'uptime' web12.lim