Linux-saltstack-3 saltstack的grains和pillar的基本使用
@
一、简介
1.grains:静态数据 在minion启动的时候收集的minion本地的相关信息
2.pillar:动态数据
pillar存在master端
每个minion只能访问master分配给自己的信息
pillar主要是下发敏感数据
二、grains
1.查看客户端所有的grains项
grains.ls
#这里查看的只有项,没有值
[root@salt-master ~]# salt 'salt-client' grains.ls
salt-client:
- biosreleasedate
- biosversion
- cpu_flags
- cpu_model
- cpuarch
......
2.查看grains的所有的项和值
grains.items
[root@salt-master ~]# salt 'salt-client' grains.items |head
salt-client:
----------
biosreleasedate:
07/02/2015
biosversion:
6.00
cpu_flags:
- fpu
- vme
- de
3.查看某个项和值
(1)语法1:
grains.item key1 key2 ......
这里查看了两个项和对应的值(os和saltversion)
[root@salt-master ~]# salt 'salt-client' grains.item os saltversion
salt-client:
----------
os:
CentOS
saltversion:
3002.2
(2)语法2:
grains.get key
grains.get 只能查看有一个项的值 不能同时查看多个项的值
[root@salt-master ~]# salt salt-client grains.get os
salt-client:
CentOS
4.根据grains来匹配目标主机
语法:
-G 'grains的项:grains项值'
例子1:使用单个项匹配主机
[root@node4 ~]# salt 'salt-client' grains.item os
salt-client:
----------
os:
CentOS
[root@node4 ~]# salt -G 'os:CentOS' cmd.run 'mkdir /root/grains_test'
salt-client:
salt-master:
例子2:多层项嵌套匹配主机
[root@node4 ~]# salt -G 'ip_interfaces:ens32:192.168.1.106' cmd.run 'head -1 /etc/passwd'
salt-client:
root:x:0:0:root:/root:/bin/bash
5.自定义grains
方法1:修改minion文件
(1)修改客户端的配置文件
[root@node5 ~]# vim /etc/salt/minion
#在137行有样例可以参照者写。我们手动加入以下内容
grains:
grains_test_items:
- zhangsan
解释:
grains: 固定写法,配置文件中的语法就是这么规定的写法,参照137行。含义就是定义grains项
grains_test_items: 自定义项
zhangsan :值
(2)重启salt-minion服务
[root@node5 ~]# systemctl restart salt-minion
(3)查看自定义项结果
[root@node4 ~]# salt 'salt-client' grains.item grains_test_items
salt-client:
----------
grains_test_items:
- zhangsan
方法2:通过grains文件定义自定义项
我们通常使用第二种方法,因为这样好管理,不和minion配置文件混和配置
(1)在客户端新建grains文件
[root@node5 ~]# touch /etc/salt/grains
(2)编写自定义项
[root@node5 salt]# cat grains
test_name: lisi
(3)同步grains自定义项
#在这里我们用另外一种方法同步grains自定义项,不用重启客户端
#使用saltutil.sync_grains 来同步自定义grains项目。它可以生效配置文件中的自定义项和grains文件中的自定义项
[root@node4 ~]# salt 'salt-client' saltutil.sync_grains
salt-client:
[root@node4 ~]# salt 'salt-client' grains.item test_name
salt-client:
----------
test_name:
lisi
三、pillar
Pillar是Salt非常重要的一个组件,它用于给特定的minion定义任何你需要的数据,这些数据可以被Salt的其他组件使用。这里可以看出Pillar的一个特点,Pillar数据是与特定minion关联的,也就是说每一个minion都只能看到自己的数据,所以Pillar可以用来传递敏感数据(在Salt的设计中,Pillar使用独立的加密session,也是为了保证敏感数据的安全性)。 另外还可以在Pillar中处理平台差异性,比如针对不同的操作系统设置软件包的名字,然后在State中引用等。
1.查看pillar项
#默认是看不到pillar的items的
[root@node4 ~]# salt '*' pillar.items
salt-client:
----------
salt-master:
----------
#想要查看pillar的items 就要打开pillar_opts选项
[root@node4 ~]# vim /etc/salt/master
#将pillar_opts的false改为True
pillar_opts: True
#重启master
[root@node4 ~]# systemctl restart salt-master
#再次查看就可以看到了
2.自定义pillar项
[root@salt-master ~]# vim /etc/salt/master
#pillar_roots:
# base:
# - /srv/pillar
从master的配置文件中我们可以看出pillar的根目录在/srv/pillar下。在master上自定义pillar项目
[root@salt-master ~]# mkdir /srv/pillar
[root@salt-master pillar]# cat pillar_test.sls
pname:
- zhangsan
[root@salt-master pillar]# cat top.sls
base:
'salt-client':
- pillar_test
3.刷新pillar自定义项
[root@salt-master ~]# salt 'salt-client' saltutil.refresh_pillar
4.查看客户端是否生效
[root@salt-master ~]# salt 'salt-client' pillar.get pname
salt-client:
- zhangsan
或者
[root@salt-master ~]# salt 'salt-client' pillar.item pname
salt-client:
----------
pname:
- zhangsan
Linux-saltstack-3 saltstack的grains和pillar的基本使用的更多相关文章
- Saltstack管理对象属性之grains和pillar组件
Grains组件 Grains是saltstack记录minion的一些静态信息组件,可以简单的理解为grains里面记录着每台minion的一些常用的属性,比如cpu.内存.磁盘.网络信息等,可以通 ...
- saltstack之(五)数据系统Grains和Pillar
一.grains 1.什么是grainsgrains:存储minion端的信息,包括一些网络.硬件等信息,保存在minion端.一般为静态信息,非经常变化的数据. 2.grains的使用:获取mini ...
- saltstack:使用教程之二高级模块用法Grains、Pillar
1.grains用法: 在客户端服务启动的时候收集客户的基础信息,在配置发生变化后也可以通过master重新同步 显示一个客户端的所有项目: [root@node5 ~]# salt "no ...
- Saltstack数据系统Grains和Pillar(三)
Saltstack数据系统 分为Grains和Pillar 一.Grains 静态数据,当Minion启动的时候收集的MInion本地的相关信息.(包含操作系统版本.内核版本.CPU.内存.硬盘.设备 ...
- SaltStack入门篇(三)之数据系统Grains、Pillar
1.什么是Grains? Grains是saltstack的组件,用于收集salt-minion在启动时候的信息,又称为静态信息.可以理解为Grains记录着每台Minion的一些常用属性,比如CPU ...
- 【02】Saltstack:Grains and Pillar
写在前面的话 上一节谈及了 Saltstack 的安装和初始化配置,本节将谈谈 Saltstack 中两个重要的东西,Grains 和 Pillar. 数据系统 Grains 入门 Grains 是静 ...
- 2. SaltStack数据系统: Grains、Pillar
1. SaltStack数据系统 Grains (谷物) Pillar (支柱) 2.Grains Grains存放着Salt命令启动时收集的信息,运行时不收集 2.1 信息查询 收集资产 网卡,i ...
- SaltStack数据系统之Grains、Pillar
SaltStack数据系统之Grains.Pillar 1.什么是Grains? Grains是saltstack的组件,用于收集salt-minion在启动时候的信息,又称为静态信息.Grains是 ...
- 【Saltstack】Saltstack简单说明
[Saltstack] Saltstack是一个服务器集中管理中心平台,可以帮助管理员轻松的对若干台服务器进行统一操作.类似的工具还有Ansible,Puppet,func等等.相比于这些工具,sal ...
- 004-SaltStack入门篇之数据系统Grains、Pillar
1.什么是Grains? Grains是saltstack的组件,用于收集salt-minion在启动时候的信息,又称为静态信息.可以理解为Grains记录着每台Minion的一些常用属性,比如CPU ...
随机推荐
- 分布式系统为什么不用自增id,要用雪花算法生成id???
1.为什么数据库id自增和uuid不适合分布式id id自增:当数据量庞大时,在数据库分库分表后,数据库自增id不能满足唯一id来标识数据:因为每个表都按自己节奏自增,会造成id冲突,无法满足需求. ...
- sql优化的8种方式
1.设置索引. MySQL索引操作:给表列创建索引: 建表时创建索引: create table t(id int,name varchar(20),index idx_name (name)); 给 ...
- GET传参数方式
controller:/getDetail/{id} /getDetail?id1234567 /getDetail?id=id1234567
- Jenkins备份
目录 一.目录结构 二.插件备份 一.目录结构 Jenkins的所有数据都是存放在文件中的,所以,Jenins备份其实就是备份Jenkins_HOME目录. JENKINS_HOME目录的机构如下: ...
- [BUUCTF]PWN——0ctf_2017_babyheap
0ctf_2017_babyheap 附件 步骤: 例行检查,64位程序,保护全开 本地试运行一下,看看大概的情况,经典的堆题的菜单 main函数 add() edit() delete() show ...
- M函数目录(Power Query 之 M 语言)
2021-12-11更新 主页(选项卡) 管理列(组) 选择列 选择列Table.SelectColumns 删除列 删除列Table.RemoveColumns 删除其他列Table.SelectC ...
- CF420A Start Up 题解
Content 给定一个长度为 \(n\) 的字符串,求这个字符串整个反转过来后是否和原字符串一样. 数据范围:\(1\leqslant n\leqslant 10^5\). Solution 众所周 ...
- Birt报表分组格式调整
1.以如下SQL语句来说明,查找未完成打分的人员,有cname(测评人名字),uname(测评人单位),bname(被测评人名字),flag字段(未完成标志) SELECT var.cname,var ...
- 分布式:分布式事务(CAP、两阶段提交、三阶段提交)
1 关于分布式系统 1.1 介绍 我们常见的单体结构的集中式系统,一般整个项目就是一个独立的应用,所有的模块都聚合在一起.明显的弊端就是不易扩展.发布冗重.服务治理不好做. 所以我们把整个系统拆分成若 ...
- 网络编程之UDP中一个包的大小最大能多大
读书笔记:here 结论1:局域网环境下,建议将UDP数据控制在1472字节以下 一定要知道 因为链路层的传输单元(MTU)是1500字节,1500字节中并不包含链路层的首尾18个字节.1500字节是 ...