• 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(三)相关推荐

  1. saltstack(十):saltstack数据系统-grains和pillar

    saltstack数据系统-grains和pillar https://www.cnblogs.com/shhnwangjian/p/5985868.html 1.1         granis G ...

  2. Saltstack数据系统——grains和pillar

    一.grains 静态数据,当Minion启动的时候收集的MInion本地的相关信息.(包含操作系统版本.内核版本.CPU.内存.硬盘.设备型号等) 1.自定义grains的item [root@se ...

  3. saltstack高级状态的使用、top file的使用、数据系统grains和pillar的使用

    saltstack高级状态的使用.top file的使用.数据系统grains和pillar的使用 1. YAML语言 YAML是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类 ...

  4. SaltStack的Grains和Pillar

    SaltStack的Grains和Pillar 标签(空格分隔): SaltStack Grains理解为除了 id之外 ,用户可以自定义的属性 下面我们通过Grains模块来设置并定义Grains信 ...

  5. Linux之Saltstack中grains、pillar取值和jinja模板的应用

    一.grains和pillar介绍 1. Grains简介 Grains是SaltStack的一个组件,存放在SaltStack的minion端.当salt-minion启动时会把收集到的数据静态存放 ...

  6. saltstack之grains与pillar讲解(3)

    一.grains简介 Grains是SaltStack的一个组件,存放在saltstack的minion端 当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当minion ...

  7. saltstack中grains与pillar详解

    一.grains 简介 Grains是SaltStack的一个组件,存放在SaltStack的minion端. 当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当mini ...

  8. saltstack之grains与pillar

    grains 收集被控主机获取信息,通常静态数据,CPU,操作系统,内核,虚拟化等.... 简单函数匹配server2 [root@server1 salt]# cat top.slsbase: 'r ...

  9. saltstack数据系统Grains

    1.什么是Grains系统   Grains是SaltStack收集的有关底层管理系统的静态信息. SaltStack收集的Grains信息包括操作系统版本.域名.IP地址.内核.操作系统类型.内存以 ...

最新文章

  1. DVWA的安装与简单使用
  2. VScode设置中文
  3. 比较OpenBLAS,Intel MKL和Eigen的矩阵相乘性能
  4. filter 灰度处理:公祭日,一行代码让页面变成黑白色调
  5. ThreadLocal实现线程范围内的共享变量
  6. java 三级菜单栏的添加_[Java教程]jquery实现的三级导航菜单实例代码
  7. iOS-贝塞尔曲线之自定义饼图
  8. Android开发笔记(一百五十四)OpenGL的画笔工具GL10
  9. 旅游新时尚:点点鼠标就可“周游世界”
  10. bzoj4754: [Jsoi2016]独特的树叶
  11. 推荐几个Linux镜像下载网站
  12. php一行代码实现人脸识别,一行代码搞定人脸识别
  13. 一文深度揭秘3GPP:2G/3G/4G/Pre-5G标准化制定流程是这样的
  14. 思科交换机配置命令(详细命令总结归纳)
  15. 转换pdf异常The document appears to be corrupted and cannot be loaded解决
  16. STM32用一个定时器封装多个定时函数调用
  17. 从千播大战到不足百家,倒闭潮之下直播创业何去何从?
  18. 用脑子说话,用心服务
  19. python 统计.txt中比较句个数,五元组的个数、以及有多少重复的op(以五元组为统计单位)
  20. 机器学习——贝叶斯算法(一)

热门文章

  1. PCV相关指标控制要求
  2. 大数据架构如何挑选机器.
  3. flink的scala版本的wordcount+flink没有输出结果的几种原因
  4. django报错500排查方法
  5. ACNet论文阅读笔记
  6. Nginx笔记-处女篇
  7. Java核心技术笔记 异常、断言和日志
  8. SharePoint 2010 大中小架构的部署
  9. CSS魔法堂:你一定误解过的Normal flow
  10. I00029 C语言程序-打印九九乘法表