saltstack Grains组件

saltstack Grains组件

GRAINS组件说明

GRAINS组件是saltstack中非常重要的一个组件,其主要用于记录Minion的一些静态信息。如比:CPU、内存、磁盘、网络等
grains信息是每次客户端启动后自动上报给master的,一旦这些静态信息发生改变需要重启minion或者重新同步grains (Master执行: salt ‘*‘ state.highstate)
除此之外我们还可以自定义Grains的一些信息。自定义的方法有三种:
1、通过Minion配置文件定义
2、通过Grains相关模块定义
3、通过python脚本定义

#查看所有的itmes项
salt '*' grains.items
salt '*'  grains.item ipv4
salt '*'  grains.item os osrelease osfinger

自定义Grains

通过Minion配置文件配置

在Minion端我们可以通过查看/etc/salt/minion配置文件中,查找grains可以查看到相关注释的示例
便于配置管理,我们不一般不会选择在该文件上进行修改,而在minion include的目录下/etc/salt/minion.d目录下单独创建grains.conf文件

cat /etc/salt/minion.d/grains.conf
grains:
  roles:
    - webserver
    - memcache
  deployment: datacenter4
  cabinet: 13
  cab_u: 14-15
# minion端
systemctl restart salt-minion
# master端
salt '*' state.highstate
salt '*'  grains.item roles

使用自定义python脚本获取grains信息

默认自定义脚本需要存放在master的/srv/salt/_grains目录下,这里使用mkdir -p创建即可

获取系统时间的脚本内容如下

cat /srv/salt/_grains/get_time.py
#!/usr/bin/python
#coding: utf-8
from datetime import datetime
def get_server_time():
  grains = {}
  grains['server_time'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  return grains
# 使用sync_grains命令同步脚本到minion主机上去
salt '*' saltutil.sync_grains
salt '*' grains.item server_time

执行同步命令后,自定义脚本会上传到minion的/var/cache/salt/minion/extmods/grains目录下

原文地址:https://www.cnblogs.com/Mrhuangrui/p/8677839.html

时间: 2024-10-14 10:28:34

saltstack Grains组件的相关文章

运维工具SaltStack之三Grains组件

运维工具SaltStack之三Grains组件 一.grains组件介绍 grains是收集Minion主机的静态.不常变化的基本信息,存储在Minion端本地,如:CPU.内核.操作系统.虚拟化等,并且服务器端可以根据这些信息进行灵活定制或个性化定制,是Saltstack最重要的组件之一,多用来做资产管理的信息收集,主要解决平台的差异性. 如可以使用以下命令: #salt 'minion01' grains.items  #获取minion01主机基本信息 二.grains组件自定义 自定义g

Saltstack之Grains组件

参考:刘天斯<Python自动化运维技术与最佳实践> grains是Saltstack最重要的组件之一,grains的作用是收集被控主机的基本信息,这些信息通常都是一些静态类的数据,包括CPU.内核.操作系统.虚拟化等,在服务器端可以根据这些信息进行灵活定制,管理员可以利用这些信息对不同业务进行个性化定制. 获取所有主机的grains项信息,发现没有max_openfile,等会我们手动编写一个. [[email protected] base]# salt '*' grains.ls sal

Saltstack的grains组件(5)

grains是Saltstack最重要的组件,grains的作用是手机被控主机的基本信息,这些信息通畅都是一些静态类数据,比如cpu.内核.操作系统.虚拟化等,在服务器端可以根据这些信息进行灵活定制,管理员可以利用这些信息对于不同的业务进行个性化设置,(初学时个人理解为:grains就是用来区分不同的minion进行不同的配置,salt '*' ,主要就是在'*' 里面进行匹配主机的作用) 1.grains常用操作命令 匹配内核版本为2.6.32-358.14.1.el6.x86_64的mini

Saltstack系列4:Saltstack之Grains组件

grains说明 grains是Saltstack最重要的组件之一,grains的作用是手机被控主机的基本信息,这些信息通常都是一些静态类的数据,包括CPU.内核.操作系统.虚拟化等,在服务器端可以根据这些信息进行灵活定制,管理员可以利用这些信息对不同业务进行个性化定制. 例:(janja模板) {% if grains['os'] == 'Ubuntu' %} host: {{ grains['host'] }} {% elif grains['os'] == 'CentOS' %} host

Saltstack pillar组件

 pillar组件 pillar也是Saltstack最重要的组件之一,其作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用,如模板.state.API等.在pillar中定义的数据与不同业务特性的被控主机相关联,这样不同被控主机只能看到自己匹配的数据,因此pillar安全性很高,适用于一些比较敏感的数据,这也是区别于grains最关键的一点,如定义不同业务组主机的用户ID.组ID.读写权限.程序包等信息,定义的规范是采用python字典形式,即键/值,最上层的键一般为主机的ID

saltstack grains与pillar使用和订制

一.grains与pillar简介 grains是minion启动时加载,在minion运行过程中不会发生变化,所以是静态数据.grains数据的定制可以在各minion端,也可以放在master端;grains中包含许多的信息,如:运行的内核版本,操作系统,网络接口地址,MAC地址,cpu,内存等等信息. Pillar是Salt用来分发全局变量到所有或指定minion的一个定制接口,所以相对grains来说可以称为动态的数据,保存在master端. 由于涉及的配置文件采用yaml格式,如果对y

saltstack grains模块自定义

简单来说grains就是收集客户端的静态信息,然后返回给服务端,但是只有重启了salt-minion,客户端采取会去收集东西. 1.先看默认都有哪些信息.salt '*' grains.items显示所有. 可以看到很多客户端的相关信息,但是有时候我们需要自己自定义去收集信息,那么我们就要自己去定义这个模板了.举一个收集客户端ulimit -n的例子. 步骤 1.vim /etc/salt/master file_roots: base: - /srv/salt/ 2.建立自定义模块: cd /

saltstack grains pillar

本节讨论系统数据的两个方面:获取有关系统的数据以及将数据提供给系统. Salt 提供两个不同的子系统来分别执行这些任务: Grains. Pillar Grains Grains用于获取有关系统的数据.Grains 是有关底层操作系统,内存,磁盘和许多其他系统属性的静态信息. 当minion启动时会自动收集Grains,并定期刷新或使用远程命令刷新(salt '*' saltutil.sync_grains). Pillar pillar用户向你的系统提供数据.考虑配置一个简单系统是所需的不同自

运维工具SaltStack之四Pillar组件

运维工具SaltStack之四Pillar组件 一.pillar组件介绍 跟grains的结构一样,存放需要提供给Minion端的信息,存储在master端.可根据各个机器环境的不同,分别定义变量,然后再sls文件里统一引用,官方表示pillar是存储敏感数据的,主要解决环境的差异性.同时与grains组件还有一个特别的区别:grains数据加载在内存里,即minion启动之后不会变,哪怕修改了grains,除非重启minion或者从master端同步.而pillar修改之后,再获取数据即生效了