saltstack之grains与pillar

grains

收集被控主机获取信息,通常静态数据,CPU,操作系统,内核,虚拟化等....

简单函数匹配server2

[[email protected] salt]# cat top.slsbase:  ‘roles:nginx‘:    - match: grain    - nginx.service
[[email protected] salt]# pwd/etc/salt[[email protected] salt]# cat grains roles: nginxunit: miaomiao

查看信息

[[email protected] salt]# salt server2.lalala.com grains.items server2.lalala.com:    ----------    SSDs:    biosreleasedate:        01/01/2011    biosversion:        0.5.1    cpu_flags:        - fpu        - de        - pse        - tsc

成功配置之后,还可以这样查看

[[email protected] salt]# salt server2.lalala.com grains.item rolesserver2.lalala.com:    ----------    roles:        nginx[[email protected] salt]# salt -G ‘roles:nginx‘ test.pingserver2.lalala.com:    True

grains的其他语法

[[email protected] salt]# salt -G ‘roles:nginx‘ cmd.run ‘uptime‘server2.lalala.com:     21:50:12 up  1:05,  1 user,  load average: 0.00, 0.02, 0.00[[email protected] salt]# salt -C ‘* and not [email protected]:nginx‘ cmd.run ‘uptime‘server3.lalala.com:     21:51:00 up  1:03,  1 user,  load average: 0.00, 0.00, 0.00

自定义grains函数匹配server3

[[email protected] salt]# cat top.sls base:  ‘roles:nginx‘:    - match: grain    - nginx.service

  ‘server3.lalala.com‘:    - httpd.apache[[email protected] _grains]# pwd/srv/salt/_grains[[email protected] _grains]# cat my_grains.py #!/usr/bin/env python#coding: utf8

def my_grains():    grains={}    grains[‘salt‘]=‘saltstack‘    grains[‘roles‘]=‘httpd‘    return grains

同步自定义的grains函数

[[email protected] salt]# salt server3.lalala.com saltutil.sync_grainsserver3.lalala.com:    - grains.my_grains[[email protected] salt]# salt server3.lalala.com grains.item saltserver3.lalala.com:    ----------    salt:        saltstack

[[email protected] ~]#  salt-call --local grains.item saltlocal:    ----------    salt:        saltstack

pillar

敏感信息

[[email protected] web]# pwd/srv/pillar/web[[email protected] web]# cat init.sls {% if grains[‘roles‘] == ‘nginx‘ %}apache: httpd{% elif grains[‘roles‘] == ‘httpd‘ %}apache: apache2{% endif %}

[[email protected] web]# cd ..[[email protected] pillar]# pwd/srv/pillar[[email protected] pillar]# cat top.sls base:  ‘*‘:    - web.init
[[email protected] pillar]# salt ‘*‘ saltutil.refresh_pillarserver3.lalala.com:    Trueserver2.lalala.com:    True[[email protected] pillar]# salt ‘*‘ pillar.item apacheserver3.lalala.com:    ----------    apache:        apache2server2.lalala.com:    ----------    apache:        httpd

其他检测语法

[[email protected] pillar]# salt -I ‘apache:httpd‘ test.ping server2.lalala.com:    True[[email protected] pillar]# salt -I ‘apache:apache2‘ test.ping server3.lalala.com:    True[[email protected] pillar]# salt -C ‘* and not [email protected]:apache2‘ test.ping server2.lalala.com:    True[[email protected] pillar]# salt -C ‘* or not [email protected]:apache2‘ test.ping server2.lalala.com:    Trueserver3.lalala.com:    True
[[email protected] pillar]# salt -C ‘[email protected]:saltstack or [email protected]:apache2‘ test.ping server3.lalala.com:    Trueserver2.lalala.com:    True[[email protected] pillar]# salt -C ‘[email protected]:nginx or [email protected]:apache2‘ test.ping server3.lalala.com:    True[[email protected] pillar]# salt -C ‘[email protected]/24 and not [email protected]:apache2‘ test.ping server2.lalala.com:    True

-I, --pillar

-G, --grain

-S,--ipcidr        Match based on Subnet (CIDR notation) or IP address.

时间: 2024-08-29 17:20:55

saltstack之grains与pillar的相关文章

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的Grains和Pillar比较

1.存放位置 Grains:Minion端 Pillar:Master端 2.数据类型 Grains:静态数据 Pillar:动态数据 3.数据采集更新方式 Grains:Minion启动时收集,也可以使用salt '*' saltutil.sync_grains进行刷新 Pillar:在Master端定义,指定给对应的Minion.可以使用salt '*' saltutil.refresh_pillar刷新 4.应用 Grains:存储Minion基本护具,比如用于匹配Minion,自身收据可

自动化运维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实战之数据系统 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与pillar使用和订制

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

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之(五)数据系统Grains和Pillar

一.grains 1.什么是grainsgrains:存储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' gra

运维工具SaltStack之三Grains组件

运维工具SaltStack之三Grains组件 一.grains组件介绍 grains是收集Minion主机的静态.不常变化的基本信息,存储在Minion端本地,如:CPU.内核.操作系统.虚拟化等,并且服务器端可以根据这些信息进行灵活定制或个性化定制,是Saltstack最重要的组件之一,多用来做资产管理的信息收集,主要解决平台的差异性. 如可以使用以下命令: #salt 'minion01' grains.items  #获取minion01主机基本信息 二.grains组件自定义 自定义g