grains作用

(注:之所以叫grain,就像凳子之所以被叫做凳子,也可以从翻译中理解,它的粒度很细,就是一个名字,只要理解这个名字后面代表的东西的功能和运用方式就可以了):

在salt上存在一个接口,它被命名为grains接口;它被用于操作系统、域名、IP地址、内核、操作系统类型、内存和许多其他系统属性的搜集;

既然说这个接口会搜集系统的属性数据,那需要怎么查看呢?,命令如下:

使用grains中的模块,模块为grains.ls
grains.ls能显示出每个属性的key,而key下面的value是不显示的,
使用:grains.ls
salt '*' grains.lsgrains.items能显示每个属性的key-value对,可以显示每个key的value值
使用: grains.items
salt '*' grains.itemsgrains.item [key] 能指定显示某个key的value值,以列表形式
salt '*' grains.item uuidgrains.get [key] 能指定显示某个可以的value值,以字符串形式
salt '*' grains.get uuid

第一种情况:我要对minion的主机增加一个key-value对,那么

如果你要对某个minion主机增加一个grains标记,那么你需要到minion增加grans的相关配置信息,增加方式有两种:
1,在/etc/salt/minion文件中配置,则top-level需要是grains的key名,比如:(注意空格,建议不要用tab键)

... #三个点表示是这个文件里面还有其他内容
grains:roles:- webserver- memcachedeployment: datacenter4cabinet: 13cab_u: 14-15

2,新建一个名为grains的文件,和名为minion文件处于同目录中:在这个文件中,就可以把grains这个key去掉,如下:

roles:- webserver- memcache
deployment: datacenter4
cabinet: 13
cab_u: 14-15

可以看到,所有的二级的key都变成了一级的key。

注意1:如果在名为minion的配置文件中被发现有‘grains’这个top-level的key存在,那么同目录下的名为grains的文件会被忽略,名为grains的文件中定义的所有键值对就会无效化
注意2:如果minion主机的grains值发生变化,则需要我们在master中手动执行命令,让minion主机自己去更新grains得到的信息,命令如下: salt '*' saltutil.refresh_modules   或者 salt '*' saltutil.sync_grains  或者 salt '*' saltutil.sync_all
注意3:为了配合topfile文件,建议在做grains的时候按照这种方式去做:

'roles:webserver':- match: grain- state0'roles:memcache':- match: grain- state1- state2

简单介绍一下topfile文件是什么,以及干什么用:
topfile文件名一般为top.sls,用于主机组和role的映射关系;之所以如此命名,是因为它们总是位于包含状态文件的目录层次结构的“顶部”。该目录层次结构称为状态树。后面会讲到,会有很多很多*.sls文件,这些sls文件都有层级关系的,而top.sls就是第一级文件。简要讲一下top.sls的文件结构:
Top文件有三个组成部分:
1,环境:一个状态树目录,包含一组用于配置系统的状态文件。
2,目标:一组将有一组状态应用于它们的机器。
3,状态文件:应用于目标的状态文件列表。每个状态文件描述一个或多个要在目标机器上配置和实施的状态。

这三个组成部分之间的关系: 环境包含目标,目标包含状态文件

比如如下这样:

base:          # 从名为“base”的环境中的目录根应用SLS文件'web*':      # 所有minion_id以web开头的minion机器被匹配- apache   # 应用名为'apache.sls'的状态文件

到此为止,暂不做继续分析,可以看具体详情连接:https://docs.saltstack.com/en/latest/ref/states/top.html#states-top

第二种情况,关于同名key存在的时候,grains会生效哪个的问题

在配置grains的时候,由于有多个地方可以配置,如果在grains里面配置了key-value对,且存在同名现象,那么哪个key-value对会有效就需要看覆盖优先级,官方给出的优先级覆盖存在如下规律:

1,grains自带的key-value值
2,在/etc/salt/grains中配置的key-value值
3,在/etc/salt/minion中配置的key-value值
4,在_grains目录中自定义的grains模块中的key-value值,它会同步到minion中去
以上顺序解释,2会覆盖掉1里面的同名key,value值会显示2里面的同名key的值;依次往下,会覆盖上面已配置的key的值;
值的一提的是,2和3如果都有grains配置,2内写的配置文件内的key-value对都会失效,不会被grains模块识别,即被忽略。

salt学习-grains相关推荐

  1. salt的grains工具和pillar工具使用详解

    什么是grains工具? Salt附带一接口,用于获取有关底层系统的信息.Salt的grains主要存储静态数据,用来收集minion端的一些数据,比如:操作系统,域名IP地址,内核,操作系统类型,内 ...

  2. salt 基本组建之 grains,pillars(整理中)

    2019独角兽企业重金招聘Python工程师标准>>> grains minion基本信息的管理 基本使用: <pre> salt '*' grains.ls 查看gra ...

  3. 企业运维实战--自动化运维Saltstack(上)之saltstack的安装部署、远程执行、grains和pillar详解以及Jinja模板的使用

    企业运维实战--自动化运维Saltstack(上) 前言 一.Saltstack安装部署 二.sls文件远程执行 saltstack安装httpd并启动 saltstack源码编译安装nginx 启动 ...

  4. SaltStack自动化运维(三)——Grains与Pillar组件

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

  5. SaltStack实战之数据系统-Grains

    1. Grains应用场景 Grains可以在state系统中使用,用于配置管理模块. Grains可以在target中使用,用来匹配minion,比如匹配操作系统,使用-G选项. Grains可以用 ...

  6. salt常用命令(一)

    查看模块包含哪些函数 salt 'node' sys.list_functions test 查看函数的用法 salt 'node' sys.doc test.echo 使用模块中的函数 salt ' ...

  7. Saltstack grains组件

    grains是Saltstack最重要的组件之一,grains的作用是收集被控主机的基本信息,这些信息通常都是一些静态的数据,包括CPU.内核.操作系统.虚拟化等,在服务器端可以根据这些信息进行灵活定 ...

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

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

  9. saltstack grains

    1.什么是Grains Grains是SaltStack的一个组件,存放着minion启动时收集的底层系统的静态信息.Grains是存储在minion端的,当minion启动时,会进行Grains的采 ...

最新文章

  1. AQS独占式同步队列入队与出队
  2. ocjp 31-40
  3. python psutil 获取命令历史_Python使用psutil获取进程信息的例子
  4. 飞鸽传书内部护眼神功
  5. js年会抽奖_嘿!这真的是一个正经的抽奖程序!
  6. php 点击按钮自动复制,实现点击元素自动复制内容的功能
  7. listary什么意思_listary pro有什么功能
  8. 使用Netty封装的部标JTT808 | JTT1078 | 渝标协议 数据上传Android端
  9. 二叉树的python实现
  10. 多普达P800 GPS设置终极教程
  11. 一个555振荡电路及其解释
  12. switch范围判断、switch区间判断
  13. grunt从入门到自定义项目模板
  14. Easypoi导出excel去掉title标题
  15. 年过35岁的程序员爆料:大龄程序员们的花样出路
  16. CCF-CSP-202012-5 星际旅行 80分暴力题解
  17. 邻接矩阵的c语言算法思路,C语言邻接矩阵的实现
  18. 基于神经网络的智能对话系统(二)——机器学习背景知识
  19. [python爬虫] BeautifulSoup爬取+CSV存储贵州农产品数据
  20. 转植物大战僵尸 基址

热门文章

  1. TCP三次握手过程,如果两次握手会怎么样?
  2. 软件测试员对英语,软件测试员英文简历
  3. AC自动机(算法介绍)
  4. 服务业为何与ERP形影不离?
  5. 2019全球汽车品牌销量排名
  6. 服务器指定gpu命令,用于亚马逊网络服务深度学习的10个命令行技巧
  7. matlab中运算符_matlab中的运算符号
  8. 计算机无法开移动热点,win10我们无法设置移动热点,win10无法开启移动热点
  9. c语言常量修饰符的作用,C语言杂记(10):关于常量修饰符const
  10. “正面黑客”解读破解漏洞: 就像追女生