一,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. libnids 显示UDP数据报,编译,运行,正确。

    #include<stdio.h>#include<nids.h>#include<string.h>#include <sys/socket.h>#i ...

  2. libnids TCP数据流重组,显示TCP连接过程的程序总无法捕获数据包解决办法:

      法一: 指定可用网卡: nids_params.device="lo"; 法二: nids.h中有这么一段: struct nids_chksum_ctl { u_int ne ...

  3. P4244 [SHOI2008]仙人掌图 II

    传送门 仙人掌直径,以前好像模拟赛的时候做到过一道基环树的直径,打了个很麻烦的然而还错了--今天才发现那就是这个的弱化版啊-- 如果是树的话用普通的dp即可,记\(f[u]\)表示\(u\)往下最长能 ...

  4. 整数类型c++

    数据类型 定义标识符 占字节数 数值范围 数值范围 短整型 short [int] 2(16位) -32768-32767 -215-215-1 整型 [long] int 4(32位) -21474 ...

  5. ACM_递推题目系列之一涂色问题(递推dp)

    递推题目系列之一涂色问题 Time Limit: 2000/1000ms (Java/Others) Problem Description: 有排成一行的n个方格,用红(Red).粉(Pink).绿 ...

  6. java 选择排序与冒泡排序

    选择排序与冒泡排序的特点与区别 ++++++++++++++++++++++++++++++++++++++++++++++ 选择排序 这一种简单的排序方法,它的基本思想是:R[n]第一次从R[0]~ ...

  7. VS2013使用单元测试

    一.开发环境 开发工具:VS2013 二.开发流程 1.添加一个控制台项目UnitDemo namespace UnitDemo { public class Program { static voi ...

  8. Python,计算 ax^2 + bx + c = 0的根

    1 #-*-coding : utf-8-*- 2 import math 3 4 def quadratic(a, b, c): 5 if not isinstance(a, (int, float ...

  9. [ SPOJ RESTACK ] Restacking haybales

    \(\\\) Description 给出一个环,每个位置有一个初值 \(A_i\),有一个目标值 \(B_i\),保证 \(\sum A_i=\sum B_i\) 每个位置只能把值分给隔壁的,每次分 ...

  10. CF814B An express train to reveries

    思路: 模拟,枚举. 实现: #include <iostream> using namespace std; ; int a[N], b[N], cnt[N], n, x, y; int ...