1、grains
grains 是在 minion(客户端)启动时收集到的一些信息,比如操作系统类型、网卡ip等。强调是minion启动时收集到的数据,所以如果改了什么硬件啥的,要重启minion才能收集,要不然还是老数据。

1.1)列出grains的key

[root@master salt]# salt '192.168.222.145' grains.ls

1.2)显示所有的key及对应key的值

[root@master salt]# salt '192.168.222.145' grains.items

1.3)显示单个key对应的值

[root@master salt]# salt '192.168.222.145' grains.item fqdn
192.168.222.145:
----------
fqdn:
master
[root@master salt]# salt '192.168.222.145' grains.get fqdn
192.168.222.145:
master

1.4)根据grains匹配并操作,如下匹配所有操作系统是centos的机器并执行w

[root@master salt]# salt -G os:CentOS cmd.run 'w'
192.168.222.146:
01:42:30 up 5:59, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 192.168.222.1 19:43 56:20 0.34s 0.34s -bash
192.168.222.145:
01:42:32 up 6:01, 1 user, load average: 0.10, 0.05, 0.01
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 192.168.222.1 19:41 1.00s 1.07s 0.45s /usr/bin/python

1.5)也可以自定义grains,然后来匹配,在minion的配置文件中修改

[root@master ~]# vim /etc/salt/minion
grains:
roles:
- webserver
- memcache

匹配角色是memcache的机器并输出hehe

[root@master ~]# salt -G roles:memcache cmd.run 'echo hehe'
192.168.222.145:
hehe

1.6)也可以自己创建一个文件来匹配grains

[root@master ~]# vim /etc/salt/grains
web: nginx
这个web不要跟minion里面的重复
[root@master ~]# salt -G web:nginx cmd.run 'uptime'
192.168.222.145:
01:52:23 up 6:10, 1 user, load average: 0.08, 0.05, 0.00

1.7)top.sls里面也可以通过grains匹配

[root@master ~]# vim /srv/salt/top.sls
base:
'web:nginx':
- match: grain
- apache [root@master ~]# salt '*' state.highstate
192.168.222.146:
----------
ID: states
Function: no.None
Result: False
Comment: No Top file or external nodes data matches found.
Started:
Duration:
Changes: Summary
------------
Succeeded: 0
Failed: 1
------------
Total states run: 1
192.168.222.145:
----------
ID: apache-install
Function: pkg.installed
Name: httpd
Result: True
Comment: Package httpd is already installed.
Started: 03:02:16.972245
Duration: 1319.294 ms
Changes:
----------
ID: apache-install
Function: pkg.installed
Name: httpd-devel
Result: True
Comment: Package httpd-devel is already installed.
Started: 03:02:18.291724
Duration: 0.646 ms
Changes:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: Service httpd is already enabled, and is in the desired state
Started: 03:02:18.293048
Duration: 50.703 ms
Changes: Summary
------------
Succeeded: 3
Failed: 0
------------
Total states run: 3
ERROR: Minions returned with non-zero exit code

  

2、Pillar,给minion指定的数据,给谁指定谁就能看到。如下开启pillar,修改配置之后重启服务,可能或会才会有响应。  

[root@master ~]#  vim /etc/salt/master
pillar_opts: True
[root@master salt]# salt '*' pillar.items

  

2.1)定义pillar数据,这个入口文件的要求是跟grains一样的

[root@master ~]# vim /etc/salt/master
pillar_roots:
base:
- /srv/pillar
pillar_opts: False

改为false

[root@master ~]# mkdir /srv/pillar
[root@master pillar]# pwd
/srv/pillar
[root@master pillar]# cat apache.sls
{% if grains['os'] == 'CentOS' %}
apache: httpd
{% elif grains['os'] == 'Debian' %}
apache: apache2
{% endif %}
[root@master pillar]# cat top.sls
base:
'*':
- apache
刷新一下
[root@master pillar]# salt '*' saltutil.refresh_pillar
192.168.222.145:
True
192.168.222.146:
True
[root@master pillar]# salt -I 'apache:httpd' test.ping
192.168.222.145:
True
192.168.222.146:
True

  

名称 存储位置 数据类型 数据采集更新方式 应用
Grains minion 静态数据

minion启动时收集,也可以使用

saltutil.sync_grains进行刷新。

存储minion基本数据。比如用于匹配minion,

自身数据可以用来做资产管理等。

Pillar master 动态数据

在master端定义,指定给对应

的minion。可以使用saltutil.refresh_pillar刷新。

存储master指定的数据,只有指定的minion可以看到,用于敏感数据保存。

Saltstack数据系统的更多相关文章

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

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

  2. SaltStack数据系统-Pillar

    上一篇:SaltStack数据系统-Grains 使用saltstack进行配置管理可以使用pillar定义主机假如是Openstack修改了一下nova的密码就需要修改很多配置文件 pillar很安 ...

  3. SaltStack数据系统-Grains

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

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

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

  5. SaltStack数据系统之Grains、Pillar

    SaltStack数据系统之Grains.Pillar 1.什么是Grains? Grains是saltstack的组件,用于收集salt-minion在启动时候的信息,又称为静态信息.Grains是 ...

  6. SaltStack数据系统-Pillar详解

    1:存储位置 存储在master端,存放需要提供给minion的信息 每个minion只能访问master分配给自己的(应用场景) 2:在centos7 salt 2015.5.10 (Lithium ...

  7. SaltStack数据系统-Grans详解

    1:Grains是系统的一个组件,存放着minion启动时收集的系统底层的一些信息,每次minion启动的时候,会进行系统的采集,将其保存下来,在以后的生命周期中不会重新搜集,除非重启~ #查看gra ...

  8. SaltStack 数据系统 Grains Pillar

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

  9. 自动化运维工具saltstack03 -- 之SaltStack的数据系统

    SaltStack数据系统 saltstack有两种数据系统:grains与pillar 1.SaltStack数据系统之grains grains可以收集minion端的静态数据(即机器启动时收集一 ...

随机推荐

  1. HDOJ 4276 The Ghost Blows Light

    题意 1. 给定一棵树, 树上节点有 value, 节点之间 travel 有 cost. 给定起始节点和最大 cost, 求解最大 value 思路 1. 寻找最短路径 a. 题目描述中有两句话, ...

  2. 京东云擎”本周四推出一键免费安装Discuz论坛

    “京东云擎”本周四推出一键免费安装Discuz论坛了,让用户能在1分钟之内建立自己的论坛.这是继上周云擎推出一键安装WordPress之后的又一重大免费贡献! 云擎: http://jae.jd.co ...

  3. ionic ui框架及creator使用帮助

    UI框架使用方法:http://ionicframework.com/docs/api/ PS:路由之类的其他js代码示例建议用 官方的app 生成器弄一个简单的页面,然后下载回来看 https:// ...

  4. shell基础篇(五)条件判断

    写脚本时:有时要判断字符串是否相等,数字测试.这对后面学习的shell语句,循环,条件语句做好基础. 条件判断格式  1. test condition : test命令  2. [ conditio ...

  5. 如何在单片机上使用printf函数(printf)(avr)(stm)(lpc)(单片机)(转)

    摘要:    当我们在调试代码时,通常需要将程序中的某个变量打印至PC机上,来判断我们的程序是否按预期的运行,printf函数很好的做到了这一点,它能直接以字符的方式输出变量名和变量的值,printf ...

  6. Win 10安装Python及环境变量配置

    一.Windows系统 很多童鞋问之前的教程怎么没有介绍安装python3.5的,现予以补充更新一下. (一)安装python3.5 1.下载 进入Python官网www.python.org,在“D ...

  7. jquery获取父级元素、子级元素、兄弟元素的方法

    jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(&q ...

  8. 知道WCF的地址用工厂通道方式快速调用WCF

    知道WCF的地址用工厂通道方式快速调用WCF  1 using System;  2 using System.ServiceModel;  3 using System.ServiceModel.D ...

  9. Unity3D笔记四 基础知识概念

    1. Project视图 主要存放游戏中用到的所有资源文件,常见的包括:游戏脚本.预设.材质.动画.自定义字体.纹理.物理材质和GUI皮肤等. 1>     Folder: 文件夹,用于资源的分 ...

  10. maven的install和deploy的区别

    转自:http://blog.csdn.net/u011305680/article/details/51699471 maven package:打包到本项目,一般是在项目target目录下.如果a ...