一,grains  

  grains: 这个跟puppet的facter功能一样。主要负责采集客户端一些基本信息, 这个也完全可以自定义,可以在客户端自定义,然后自动汇报上来;也可以从服务器端定义然后推下去,采集完后,再汇报上来grains信息是静态的;pillar  跟grains 比较的话 他的灵活性强点,怎么定义就这么定义,然后取值就行

grains的用法:

 [root@feed200 ~]# salt '*' grains.items    ##查询所有的grains信息
test1:
----------
SSDs:
biosreleasedate:
//
biosversion:
A1TSA1A
cpu_flags:
- fpu
- vme
- de
- pse
- tsc
- msr
- pae
- mce
- cx8
- apic
- sep
- mtrr
- pge
- mca
- cmov
- pat
- pse36
- clflush
- dts
- acpi
- mmx
- fxsr
- sse
- sse2
- ss
- ht
- tm
- pbe
- syscall
- nx
- pdpe1gb
- rdtscp
- lm
- constant_tsc
- arch_perfmon
- pebs
- bts
- rep_good
- xtopology
- nonstop_tsc
此处省略N行..................
 [root@feed200 ~]# salt '10.13.41.21' grains.get ip_interfaces:eth0    ##查询eth0所用IP地址
10.13.41.21:
- 10.13.41.21
- fe80::72e2:84ff:fe12:7a05

使用grains添加自定义items

 第一种方法:

  在minion端:修改配置文件/etc/salt/minion  中 打开 default_include: minion.d/*.conf 
  在/etc/salt/minion.d/目录中添加需要增加的items,文件类型与配置项*.conf对应
 [root@feed200 minion.d]# cat push.conf
grains:
ITEMS:
TEST: yes
OA:
- a
- b
  之后重启minion服务 /etc/init.d/salt-minion restart,在master端查看是否添加成功
 [root@feed200 ~]# salt '10.13.41.21' grains.items
10.13.41.21:
----------
ITEMS: OA:
- a
- b
SSDs:
TEST:
True          ##表示成功

第二种方法:

  在master端添加,在/srv/salt/ 创建_grains目录,编写grains文件,需要返回一个字典
 [root@feed200 _grains]# pwd
/srv/salt/_grains
[root@feed200 _grains]# cat nginx.py
def nginx():
nginx={}
nginx['nginx']='1.5.5'    ##定义nginx的默认版本
return nginx
8 同步到minion端: salt '*' saltutil.sync_all
9 或者使用salt '*' state.highstate(这个貌似不好使)命令同步,然后刷新各minion端salt '*' sys.reload_modules,通过grains.items看到相关的信息了
 在执行salt '*' grains.item os  --summary    ##加上--summary可以显示执行结果
 -------------------------------------------
Summary
-------------------------------------------
# of minions targeted: 254
# of minions returned: 254
# of minions that did not return: 0
-------------------------------------------

二,pillar  

  Pillar 是 Salt 非常重要的一个组件,它用于给特定的 minion 定义任何你需要的数据, 这些数据可以被 Salt 的其他组件使用。Salt 在 0.9.8 版本中引入了 Pillar。Pillar 在解析完成 后,是一个嵌套的 dict 结构;最上层的 key 是 minion ID,其 value 是该 minion 所拥有的 Pillar 数据;每一个 value 也都是 key/value。这里可以看出 Pillar 的一个特点,Pillar 数据是与特定 minion 关联的,也就是说每一个minion 都只能看到自己的数据, 所以 Pillar 可以用来传递敏感数据 (在 Salt 的设计中, Pillar 使用独立的加密 session,也是为了保证敏感数据的安全性) 。 Pillar 可以用在哪些地方?

  敏感信息:每个minion只能访问master分配给自己的pillar信息,例如ssh-key,加密证书
  变量:差异化的信息等,
  其他任何数据,可以在target及state中使用

  用在 Targetting 中,Pillar 可以用来选择 minion,使用-I 选项,默认情况下,master 配置文件中的所有数据都添加到 Pillar 中,且对所有 minion 可用。如果要禁用这一默认值,可以在 master 配置文件中添加如下数据,重启服务后生效,关于Pillar的配置见 /etc/salt/master

 pillar_roots:
 base:
   – /srv/pillar
     packages.sls
{% if grains['os'] == 'RedHat' %} ##判断系统时候是redhat,是的话Apache名是httpd
apache: httpd
git: git
{% elif grains['os'] == 'Debian' %}
apache: apache2
git: git-core
{% endif %}
top.sls
base:
'*':
- packages
  salt '*' saltutil.refresh_pillar      ## 定义好pillar后,执行下面命令进行同步
14 salt '*' pillar.data             ## 命令查看pillar信息
15 salt '*' pillar.get schedule        ## pillar取某个值

saltstack(三) grains、pillar的使用的更多相关文章

  1. SaltStack 数据系统 Grains Pillar

    grains 先来一个很好用的命令 # salt '*' grains.items \\基本上输出了所有你想要的信息 192.168.100.138: ---------- SSDs: biosrel ...

  2. 2. SaltStack数据系统: Grains、Pillar

    1. SaltStack数据系统 Grains (谷物) Pillar (支柱) 2.Grains Grains存放着Salt命令启动时收集的信息,运行时不收集 2.1  信息查询 收集资产 网卡,i ...

  3. Linux-saltstack-3 saltstack的grains和pillar的基本使用

    @ 目录 一.简介 二.grains 1.查看客户端所有的grains项 2.查看grains的所有的项和值 3.查看某个项和值 (1)语法1: (2)语法2: 4.根据grains来匹配目标主机 例 ...

  4. 死磕salt系列-salt grains pillar 配置

    grains 和 pillar 对比: Grains:存放静态数据,主要存储客户端的主机信息,重启grains会刷新. Pillar: 处理敏感数据, 处理差异性的文件. Grains数据系统 sal ...

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

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

  6. 【02】Saltstack:Grains and Pillar

    写在前面的话 上一节谈及了 Saltstack 的安装和初始化配置,本节将谈谈 Saltstack 中两个重要的东西,Grains 和 Pillar. 数据系统 Grains 入门 Grains 是静 ...

  7. 3.saltstack的grains和pillar学习笔记

    作者:刘耀 QQ:22102107 SaltStack_Grains Grains grains是minion第一次启动的时候采集的静态数据,可以用在salt的模块和其他组件中.其实grains在每次 ...

  8. SaltStack数据系统-Grains

    上一篇:SaltStack配置管理 granis:谷粒 pillar:柱子 grains是salt的一个组件,存放minion启动时候收集的信息(状态信息) 查看 salt '*' grains.it ...

  9. ansible puppet saltstack三款自动化运维工具的对比

    一.基础介绍 ansible基础介绍可参考:http://www.linuxidc.com/Linux/2017-12/149671.htm puppet基础介绍可参考:http://www.linu ...

随机推荐

  1. gitlab-ce平台调试

    SMTP使用QQ exmail 遇到的问题:使用qinrui@easyunion.net对516059158@qq.com能发送验证邮件,但是无法打开验证连接

  2. java编程中的断言工具类(org.springframework.util.Assert)

    转自:https://blog.csdn.net/gokeiryou263/article/details/19612471 断言工具类:Assert类, java.lang.Object ---&g ...

  3. 利用XStream实现对象XML话

    使用Java原生的序列化的方式来表示一个对象.总结一下这种对象表示方式的优缺点: 1.纯粹的Java环境下这种方式可以很好地工作,因为它是Java自带的,也不需要第三方的Jar包的支持 2.多语言环境 ...

  4. 一句powershell调用mimikatz抓密码

    mimikatz神器大家都知道吧,可以抓取系统内的明文密码,但是平时我们测试的时候需要把mimikatz的几个文件上传到目标系统上面,然后再手工执行几个命令才能搞定,今天无意访问一个大神的博客,发现其 ...

  5. bzoj 1034: [ZJOI2008]泡泡堂BNB【贪心】

    是贪心 先把两个数组排序,然后贪心的选让a数组占优的(如果没有就算输),这是最大值,最小值是2n-贪心选b数组占优 #include<iostream> #include<cstdi ...

  6. bzoj 1059: [ZJOI2007]矩阵游戏【匈牙利算法】

    注意到怎么换都行,但是如果把某个黑方块用在对角线上,它原来所在的行列的的黑方块就都不能用 所以要选出n组不重的行列组合,这里用匈牙利算法做二分图匹配即可(用了时间戳优化) #include<io ...

  7. bzoj 1690: [Usaco2007 Dec]奶牛的旅行【01分数规划+spfa】

    把add传参里的double写成int我也是石乐志-- 首先这个东西长得就很01分数规划 然后我不会证为什么没有8字环,我们假装他没有 那么设len为环长 \[ ans \leq \frac{\sum ...

  8. ionic之AngularJS扩展动态组件

    目录: 1. 模态对话框 : $ionicModal 2. 上拉菜单 : $ionicActionSheet 3. 弹出框 : $ionicPopup 4. 浮动框 : $ionicPopover 5 ...

  9. echart 参数 vue配置 图文展示

    https://blog.csdn.net/she_lover/article/details/51448967 https://blog.csdn.net/n_meng/article/detail ...

  10. shiro vue 前后端分离中模拟登录遇到的坑

    系统采用jeeplus框架(ssm+redis+shiro+mongodb+redis),默认是了JSP未做前后端分离,由于业务需要已经多终端使用的需求(H5.小程序等),需要实现前后端分离.但是由于 ...