Saltstack数据系统Grains和Pillar(三)
- Saltstack数据系统
分为Grains和Pillar
一、Grains
静态数据,当Minion启动的时候收集的MInion本地的相关信息。(包含操作系统版本、内核版本、CPU、内存、硬盘、设备型号等)
备注:不重启minion,这些信息数据是不会改变的。
1)信息管理,包括资产管理;
例:
salt 'linux-node1*' grains.ls # 列出ID为linux-node1的主机,grains的所有key salt 'linux-node1*' grains.items # 列出主机的详细信息,可用于资产管理 salt '*' grains.item os # 列出所有主机的系统版本 salt '*' grains.item fqdn_ip4 # 列出所有主机的IP地址
2)用于目标选择;(查询具体id的主机,查询系统版本为centos的主机 等场景)
例:
salt -G 'os:Centos' test.ping # 所有主机系统为centos版本ping测试 salt -G 'os:Centos' cmd.run 'echo 123' # 所有主机系统为centos版本执行命令'echo 123'
3)配置管理中使用
自定义grains的item
方式一: 修改配置文件 vim /etc/salt/minion
重启 systemctl restart salt-minion
通过自定义的item,可以实现重启所有角色为apache的主机
salt '*' grains.item roles # 获取所有主机的roles salt -G 'roles:apache' cmd.run 'systemctl restart httpd' # 所有主机roles为apache的执行命令systemctl restart httpd
方式二:(生产环境使用)
修改配置文件 vim /etc/salt/grains,写法
cloud: openstack
重启 systemctl restart salt-minion
salt '*' grains.item cloud # 获取所有主机的cloud
修改/etc/salt/grains不重启服务的方法,刷新命令如下(备注:方式一和方式二修改配置文件,通过此命令都可以不用重启服务)
salt '*' saltutil.sync_grains
grains在top FILE中的使用案例
vim /srv/salt/top.sls
base:'linux-node1.example.com':- web.apache'roles:apache':- match: grain- web.apach
grains脚本目录,必须是base下创建_grains目录(如:/srv/salt/_grains)
创建一个python脚本在/srv/salt/_grains目录下
脚本名:my_grains.py
#!/usr/bin/env python #-*- coding: utf-8 -*-def my_grains():# 初始化grains字典grains = {}# 设置字典中的key-valuegrains['iaas'] = 'openstack'grains['edu'] = 'shhnwangjian'# 返回字典return grains
通过master同步脚本文件至每台minion
salt '*' saltutil.sync_grains
文件放在minion主机的/var/cache/salt/minion/extmods/grains目录下
salt '*' grains.item edu # 获取所有主机的edu
grains优先级(item名称相同的情况下): 1. 系统自带 2. grains文件写到 3. minion配置文件写的 4. 自己写的脚本
二、Pillar
动态数据,给特定的minion指定特定的数据。只有指定的minion自己能看到自己的数据。
salt '*' pillar.items
开启系统自带,修改配置文件
vim /etc/salt/master
重启systemctl restart salt-master
执行salt '*' pillar.items 可以看到系统自带的item
piller存在文件路径设置
mkdir /srv/pillar
重启systemctl restart salt-master
实现pillar流程
1)创建一个piller文件,python jinja2写法
mkdir /srv/pillar/web cd /srv/pillar/web vim apache.sls
{% if grains['os'] == 'CentOS' %} apache: httpd {% elif grains['os'] == 'Debian' %} apache: apache2 {% endif %}
2)创建TOP FILE文件
vim /srv/pillar/top.sls
base:'linux-node2.example.com':- web.apache
salt '*' saltutil.refresh_pillar # 刷新 salt '*' pillar.items apache
目标选择
salt -I 'apache:httpd' test.ping
三、Grains VS Pillar
转载于:https://www.cnblogs.com/shhnwangjian/p/5985868.html
Saltstack数据系统Grains和Pillar(三)相关推荐
- saltstack(十):saltstack数据系统-grains和pillar
saltstack数据系统-grains和pillar https://www.cnblogs.com/shhnwangjian/p/5985868.html 1.1 granis G ...
- Saltstack数据系统——grains和pillar
一.grains 静态数据,当Minion启动的时候收集的MInion本地的相关信息.(包含操作系统版本.内核版本.CPU.内存.硬盘.设备型号等) 1.自定义grains的item [root@se ...
- saltstack高级状态的使用、top file的使用、数据系统grains和pillar的使用
saltstack高级状态的使用.top file的使用.数据系统grains和pillar的使用 1. YAML语言 YAML是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类 ...
- SaltStack的Grains和Pillar
SaltStack的Grains和Pillar 标签(空格分隔): SaltStack Grains理解为除了 id之外 ,用户可以自定义的属性 下面我们通过Grains模块来设置并定义Grains信 ...
- Linux之Saltstack中grains、pillar取值和jinja模板的应用
一.grains和pillar介绍 1. Grains简介 Grains是SaltStack的一个组件,存放在SaltStack的minion端.当salt-minion启动时会把收集到的数据静态存放 ...
- saltstack之grains与pillar讲解(3)
一.grains简介 Grains是SaltStack的一个组件,存放在saltstack的minion端 当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当minion ...
- saltstack中grains与pillar详解
一.grains 简介 Grains是SaltStack的一个组件,存放在SaltStack的minion端. 当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当mini ...
- saltstack之grains与pillar
grains 收集被控主机获取信息,通常静态数据,CPU,操作系统,内核,虚拟化等.... 简单函数匹配server2 [root@server1 salt]# cat top.slsbase: 'r ...
- saltstack数据系统Grains
1.什么是Grains系统 Grains是SaltStack收集的有关底层管理系统的静态信息. SaltStack收集的Grains信息包括操作系统版本.域名.IP地址.内核.操作系统类型.内存以 ...
最新文章
- DVWA的安装与简单使用
- VScode设置中文
- 比较OpenBLAS,Intel MKL和Eigen的矩阵相乘性能
- filter 灰度处理:公祭日,一行代码让页面变成黑白色调
- ThreadLocal实现线程范围内的共享变量
- java 三级菜单栏的添加_[Java教程]jquery实现的三级导航菜单实例代码
- iOS-贝塞尔曲线之自定义饼图
- Android开发笔记(一百五十四)OpenGL的画笔工具GL10
- 旅游新时尚:点点鼠标就可“周游世界”
- bzoj4754: [Jsoi2016]独特的树叶
- 推荐几个Linux镜像下载网站
- php一行代码实现人脸识别,一行代码搞定人脸识别
- 一文深度揭秘3GPP:2G/3G/4G/Pre-5G标准化制定流程是这样的
- 思科交换机配置命令(详细命令总结归纳)
- 转换pdf异常The document appears to be corrupted and cannot be loaded解决
- STM32用一个定时器封装多个定时函数调用
- 从千播大战到不足百家,倒闭潮之下直播创业何去何从?
- 用脑子说话,用心服务
- python 统计.txt中比较句个数,五元组的个数、以及有多少重复的op(以五元组为统计单位)
- 机器学习——贝叶斯算法(一)