saltstack数据系统-grains和pillar

https://www.cnblogs.com/shhnwangjian/p/5985868.html

1.1         granis

Grains是saltstack的组件,用于收集salt-minion在启动时候的信息,又称为静态信息。
Grains是服务器的一系列粒子信息,也就是服务器的一系列物理,软件环境信息。在执行salt的sls时候可以根据Grains信息的不同对服务器进行匹配分组,例如可以根据系统是centos服务器跟系统是redhat环境的安装不同的软件包。

负责minion第一次启动的时候采集的静态数据,可以用在salt的模块和其他组件中。每次的minion启动(重启)的时候都会采集。

Grains功能:1.收集资产信息 2.信息查询
官方文档:https://docs.saltstack.com/en/getstarted/overview.html

静态数据,当Minion启动的时候收集的MInion本地的相关信息。(包含操作系统版本、内核版本、CPU、内存、硬盘、设备型号等)

备注:不重启minion,这些信息数据是不会改变的。

1.1.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地址

1.1.2     用于目标选择;(查询具体id的主机,查询系统版本为centos的主机 等场景)

salt -G 'os:Centos' test.ping  # 所有主机系统为centos版本ping测试
salt -G 'os:Centos' cmd.run 'echo 123'  # 所有主机系统为centos版本执行命令'echo 123'

1.1.3     配置管理中使用—自定义grains的item

方式一: minion端修改配置文件 vim /etc/salt/minion

重启 systemctl restart salt-minion

通过自定义的item,可以实现重启所有角色为HTTPD的主机

salt 'test*' grains.item roles  # 获取所有主机的roles
salt -G 'roles:HTTPD' 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

1.1.4    grains在top FILE中的使用案例

配置

#vim /srv/salt/top.sls
base:
#  'test-tms':
#    - web.lnmp'role:HTTPD':- match:grain    #声明使用grains- web.lnmp

grains脚本目录,必须是base下创建_grains目录(如:/srv/salt/base/_grains)

创建一个python脚本在/srv/salt/_grains目录下

脚本名:my_grains.py

通过master同步脚本文件至每台minion

文件放在minion主机的/var/cache/salt/minion/extmods/grains目录下

测试

1.1.5       grains优先级

(item名称相同的情况下): 1. 系统自带 2. grains文件写到 3. minion配置文件写的 4. 自己写的脚本

1.2         pillar

Pillar是动态的,Pillar存储在master上,提供给minion
Pillar主要记录一些加密信息,可以确保这些敏感数据不被其他minion看到。比如:软件版本号、用户名密码等。存储格式都是YAML格式。

Pillar是动态的,Pillar存储在master上,提供给minion
Pillar主要记录一些加密信息,可以确保这些敏感数据不被其他minion看到。比如:软件版本号、用户名密码等。存储格式都是YAML格式

开启系统自带,修改配置文件

vim /etc/salt/master

重启

sudo systemctl restart salt-master

执行salt '*' pillar.items 可以看到系统自带的item,当然最初是空的

实现pillar流程

1)创建一个piller文件,python jinja2写法

###install.sls
{% if grains['fqdn'] == 'test-tms' %}
webserver: httpd
{% elif grains['fqdn'] == 'test-mall' %}
webserver: nginx
{% else %}
webserver: NOT-httpd-nginx
{% endif %}##top.sls
base:'test*':- web.install

测试

刷新

salt '*' saltutil.refresh_pillar  # 刷新

显示item

salt '*' pillar.items webserver

根据设置key值显示item

salt 'test*' pillar.items webserver

目标选择

salt -I 'webserver:nginx' test.ping

1.3         grains和pillar结合jinja模板

https://www.cnblogs.com/wangxu01/articles/10974696.html

1.4         grains和pillar的区别

转载于:https://www.cnblogs.com/wangxu01/articles/10974892.html

saltstack(十):saltstack数据系统-grains和pillar相关推荐

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

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

  2. Saltstack数据系统Grains和Pillar(三)

    Saltstack数据系统 分为Grains和Pillar 一.Grains 静态数据,当Minion启动的时候收集的MInion本地的相关信息.(包含操作系统版本.内核版本.CPU.内存.硬盘.设备 ...

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

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

  4. SaltStack实战之数据系统-Grains

    1. Grains应用场景 Grains可以在state系统中使用,用于配置管理模块. Grains可以在target中使用,用来匹配minion,比如匹配操作系统,使用-G选项. Grains可以用 ...

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

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

  6. SaltStack自动化运维(三)——Grains与Pillar组件

    前言 Grains组件 Grains是saltstack记录minion的一些静态信息组件,可以简单的理解为grains里面记录着每台minion的一些常用的属性,比如cpu.内存.磁盘.网络信息等, ...

  7. SaltStack的Grains和Pillar

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

  8. 企业运维实战--自动化运维Saltstack(上)之saltstack的安装部署、远程执行、grains和pillar详解以及Jinja模板的使用

    企业运维实战--自动化运维Saltstack(上) 前言 一.Saltstack安装部署 二.sls文件远程执行 saltstack安装httpd并启动 saltstack源码编译安装nginx 启动 ...

  9. [原创]Slatstack 两个数据系统重要组件:Grains和Pillar初步介绍说明

    之前文章<Saltstack命令参数详解以及配置文件说明> 做了一个saltstack 的简单用户举例以及配置文件说明,基本对saltstack这个自动化工具有了一个原理.安装和配置方面的 ...

最新文章

  1. 用BenchmarkDotNet给C#程序做性能测试
  2. 为什么有些产品不尽完美 但还是有大批用户愿意购买(转)
  3. BugkuCTF-Misc:Linux
  4. python的常用数据类型_python 常用数据类型
  5. linux安装版本的python,linux安装python各种版本.md
  6. 【WebSocket】手把手教会使用WebSocket
  7. Java学习系列(十六)Java面向对象之基于TCP协议的网络通信
  8. 有时,不做什么比做什么更重要,拒绝比答应更重要
  9. 爬虫入门知识+简单案例《python网络爬虫从入门到实践》静态网页抓取
  10. Chrome浏览器启动参数大全(命令行参数)
  11. 使用Labwindows开发DAQmx
  12. 参加2010年磨房《在路上 - 十年》百公里徒步活动小记
  13. C1083: 无法打开包括文件:“corecrt.h”
  14. java 文件图标_如何用java程序修改文件夹默认图标,麻烦了
  15. SMART硬盘检测参数详解
  16. Kaldi的关键词搜索(Keyword Search,KWS)
  17. html怎么将背景设为黑色,文字设为白色
  18. js 动态给style标签内添加样式
  19. MySQL 的几种碎片整理方案总结(解决delete大量数据后空间不释放的问题)
  20. 梅森公式的推导和探究

热门文章

  1. python写excel
  2. nginx配置文件注释说明
  3. 企业做网络推广关键词设置的几点个人看法
  4. 基于visual Studio2013解决C语言竞赛题之0608水仙花函数
  5. Phpcms V9全站伪静态设置方法
  6. 007 - VUE + hexo blog
  7. Python---字符串与列表
  8. 【零基础学Java】—LinkedList集合(四十)
  9. 【操作系统】—处理机调度的概念以及层次
  10. 怎么委婉地不让婆婆每天来我家?