@

一、简介

1.grains:静态数据 在minion启动的时候收集的minion本地的相关信息

2.pillar:动态数据

pillar存在master端

每个minion只能访问master分配给自己的信息

pillar主要是下发敏感数据

二、grains

1.查看客户端所有的grains项

grains.ls

  1. #这里查看的只有项,没有值
  2. [root@salt-master ~]# salt 'salt-client' grains.ls
  3. salt-client:
  4. - biosreleasedate
  5. - biosversion
  6. - cpu_flags
  7. - cpu_model
  8. - cpuarch
  9. ......

2.查看grains的所有的项和值

grains.items

  1. [root@salt-master ~]# salt 'salt-client' grains.items |head
  2. salt-client:
  3. ----------
  4. biosreleasedate:
  5. 07/02/2015
  6. biosversion:
  7. 6.00
  8. cpu_flags:
  9. - fpu
  10. - vme
  11. - de

3.查看某个项和值

(1)语法1:

​ grains.item key1 key2 ......

​ 这里查看了两个项和对应的值(os和saltversion)

  1. [root@salt-master ~]# salt 'salt-client' grains.item os saltversion
  2. salt-client:
  3. ----------
  4. os:
  5. CentOS
  6. saltversion:
  7. 3002.2
(2)语法2:

​ grains.get key

​ grains.get 只能查看有一个项的值 不能同时查看多个项的值

  1. [root@salt-master ~]# salt salt-client grains.get os
  2. salt-client:
  3. CentOS

4.根据grains来匹配目标主机

语法:

-G 'grains的项:grains项值'

例子1:使用单个项匹配主机

  1. [root@node4 ~]# salt 'salt-client' grains.item os
  2. salt-client:
  3. ----------
  4. os:
  5. CentOS
  6. [root@node4 ~]# salt -G 'os:CentOS' cmd.run 'mkdir /root/grains_test'
  7. salt-client:
  8. salt-master:

例子2:多层项嵌套匹配主机

  1. [root@node4 ~]# salt -G 'ip_interfaces:ens32:192.168.1.106' cmd.run 'head -1 /etc/passwd'
  2. salt-client:
  3. root:x:0:0:root:/root:/bin/bash

5.自定义grains

方法1:修改minion文件

(1)修改客户端的配置文件
  1. [root@node5 ~]# vim /etc/salt/minion
  2. #在137行有样例可以参照者写。我们手动加入以下内容
  3. grains:
  4. grains_test_items:
  5. - zhangsan

解释:

grains: 固定写法,配置文件中的语法就是这么规定的写法,参照137行。含义就是定义grains项

grains_test_items: 自定义项

zhangsan :值

(2)重启salt-minion服务
  1. [root@node5 ~]# systemctl restart salt-minion
(3)查看自定义项结果
  1. [root@node4 ~]# salt 'salt-client' grains.item grains_test_items
  2. salt-client:
  3. ----------
  4. grains_test_items:
  5. - zhangsan

方法2:通过grains文件定义自定义项

我们通常使用第二种方法,因为这样好管理,不和minion配置文件混和配置

(1)在客户端新建grains文件
  1. [root@node5 ~]# touch /etc/salt/grains
(2)编写自定义项
  1. [root@node5 salt]# cat grains
  2. test_name: lisi
(3)同步grains自定义项
  1. #在这里我们用另外一种方法同步grains自定义项,不用重启客户端
  2. #使用saltutil.sync_grains 来同步自定义grains项目。它可以生效配置文件中的自定义项和grains文件中的自定义项
  3. [root@node4 ~]# salt 'salt-client' saltutil.sync_grains
  4. salt-client:
  5. [root@node4 ~]# salt 'salt-client' grains.item test_name
  6. salt-client:
  7. ----------
  8. test_name:
  9. lisi

三、pillar

Pillar是Salt非常重要的一个组件,它用于给特定的minion定义任何你需要的数据,这些数据可以被Salt的其他组件使用。这里可以看出Pillar的一个特点,Pillar数据是与特定minion关联的,也就是说每一个minion都只能看到自己的数据,所以Pillar可以用来传递敏感数据(在Salt的设计中,Pillar使用独立的加密session,也是为了保证敏感数据的安全性)。 另外还可以在Pillar中处理平台差异性,比如针对不同的操作系统设置软件包的名字,然后在State中引用等。

1.查看pillar项

  1. #默认是看不到pillar的items的
  2. [root@node4 ~]# salt '*' pillar.items
  3. salt-client:
  4. ----------
  5. salt-master:
  6. ----------
  7. #想要查看pillar的items 就要打开pillar_opts选项
  8. [root@node4 ~]# vim /etc/salt/master
  9. #将pillar_opts的false改为True
  10. pillar_opts: True
  11. #重启master
  12. [root@node4 ~]# systemctl restart salt-master
  13. #再次查看就可以看到了

2.自定义pillar项

  1. [root@salt-master ~]# vim /etc/salt/master
  2. #pillar_roots:
  3. # base:
  4. # - /srv/pillar

从master的配置文件中我们可以看出pillar的根目录在/srv/pillar下。在master上自定义pillar项目

  1. [root@salt-master ~]# mkdir /srv/pillar
  2. [root@salt-master pillar]# cat pillar_test.sls
  3. pname:
  4. - zhangsan
  5. [root@salt-master pillar]# cat top.sls
  6. base:
  7. 'salt-client':
  8. - pillar_test

3.刷新pillar自定义项

  1. [root@salt-master ~]# salt 'salt-client' saltutil.refresh_pillar

4.查看客户端是否生效

  1. [root@salt-master ~]# salt 'salt-client' pillar.get pname
  2. salt-client:
  3. - zhangsan
  4. 或者
  5. [root@salt-master ~]# salt 'salt-client' pillar.item pname
  6. salt-client:
  7. ----------
  8. pname:
  9. - zhangsan

Linux-saltstack-3 saltstack的grains和pillar的基本使用的更多相关文章

  1. Saltstack管理对象属性之grains和pillar组件

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

  2. saltstack之(五)数据系统Grains和Pillar

    一.grains 1.什么是grainsgrains:存储minion端的信息,包括一些网络.硬件等信息,保存在minion端.一般为静态信息,非经常变化的数据. 2.grains的使用:获取mini ...

  3. saltstack:使用教程之二高级模块用法Grains、Pillar

    1.grains用法: 在客户端服务启动的时候收集客户的基础信息,在配置发生变化后也可以通过master重新同步 显示一个客户端的所有项目: [root@node5 ~]# salt "no ...

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

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

  5. SaltStack入门篇(三)之数据系统Grains、Pillar

    1.什么是Grains? Grains是saltstack的组件,用于收集salt-minion在启动时候的信息,又称为静态信息.可以理解为Grains记录着每台Minion的一些常用属性,比如CPU ...

  6. 【02】Saltstack:Grains and Pillar

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

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

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

  8. SaltStack数据系统之Grains、Pillar

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

  9. 【Saltstack】Saltstack简单说明

    [Saltstack] Saltstack是一个服务器集中管理中心平台,可以帮助管理员轻松的对若干台服务器进行统一操作.类似的工具还有Ansible,Puppet,func等等.相比于这些工具,sal ...

  10. 004-SaltStack入门篇之数据系统Grains、Pillar

    1.什么是Grains? Grains是saltstack的组件,用于收集salt-minion在启动时候的信息,又称为静态信息.可以理解为Grains记录着每台Minion的一些常用属性,比如CPU ...

随机推荐

  1. Linux:cp -rp

    cp -rp[原文件或目录] [目标文件或目录] -r   复制目录 - p   保留文件属性 范例: cp -r /yy/k /yy/u /mm 复制目录u和目录k到目录mm中 cp -r /yy/ ...

  2. 加密时java.security.InvalidKeyException: Illegal key size or default parameters解决办法

    需 Java几乎各种常用加密算法都能找到对应的实现.因为美国的出口限制,Sun通过权限文件(local_policy.jar.US_export_policy.jar)做了相应限制.因此存在一些问题: ...

  3. js调用高德地图API获取地理信息进行定位

    <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=(需要自 ...

  4. 【spring AOP】@Pointcut的12种用法

    @Pointcut用来标注在方法上来定义切入点. 使用格式:@ 注解(value="表达标签 (表达式格式)").如:@Pointcut("execution(* com ...

  5. matplotlib subplot 多图合一

    1:第一种方法 # method1: subplot2grid ################# ''' 第一个参数(3, 3) 是把图分成3行3列 第二个参数是位置 (0, 0)表示从0行0列开始 ...

  6. solr8.2

    https://www.cnblogs.com/carlosouyang/p/11352779.html

  7. Mysql资料 锁机制

    目录 一.简介 二.类型 三.操作 四.死锁 第一种情况 第二种情况 第三种情况 一.简介 数据库和操作系统一样,是一个多用户使用的共享资源.当多个用户并发地存取数据 时,在数据库中就会产生多个事务同 ...

  8. ts配置项

    { "compilerOptions": { /* 基本选项 */ "target": "es5", // 指定 ECMAScript 目标 ...

  9. M语言中的引用(Power Query 之 M 语言)

    名词 查询表 函数 行{}/列[] 单元格 表(Table) 列表(List) 记录(Record) 引用[查询表] =查询表表名 引用[应用的步骤] =步骤名 引用表中的[单元格](深化) =表{行 ...

  10. 搭建ELK日志平台(单机)

    系统版本:Ubuntu 16.04.7 LTS 软件架构:Filebeat+Kafka+Logstash+Elasticsearch+Kibana+Nginx 软件版本:Filebeat-7.16.0 ...