运维工具SaltStack之三Grains组件

运维工具SaltStack之三Grains组件

一、grains组件介绍

grains是收集Minion主机的静态、不常变化的基本信息,存储在Minion端本地,如:CPU、内核、操作系统、虚拟化等,并且服务器端可以根据这些信息进行灵活定制或个性化定制,是Saltstack最重要的组件之一,多用来做资产管理的信息收集,主要解决平台的差异性。

如可以使用以下命令:

#salt ‘minion01‘ grains.items  #获取minion01主机基本信息

二、grains组件自定义

自定义grains有两种方法:

第一种Minion端配置,需要重启minion生效(不建议使用);

第二种在master端配置,同步之后生效,不需要重启master或者minion(比较推荐该方法)。

1.在master端配置grains组件

1.1.使用默认的Master的file_roots配置路径 /srv/salt创建_grains目录

#cd /srv/salt && mkdir _grains

1.2.修改salt的Master主配置文件(/etc/salt/master),新增如下内容,并且需要重启Master服务:

file_roots:
  base:
    - /srv/salt/
# systemctl restart salt-master.service

注意:yaml格式问题: 和 - 后有空格,小心缩进!!!!!!!!

1.3.使用python自定义脚本(注意返回值是一个字典)

#抓取服务器的运行时间

cat /srv/salt/_grains/runtime.py
#!/usr/bin/python
import commands
def runtime():
    grains = {}
    grains[‘days‘] = commands.getoutput("uptime|awk -F‘up|days‘ ‘{print $2}‘")
    return runtime

1.4.用saltutil.sync_grains或者saltutil.sync_all将自定义的grains item 同步到Minion端,如果只同步grains建议使用saltutil.sync_grains。

# salt ‘minion01‘ saltutil.sync_grains -l debug
# salt ‘minion01‘ sys.reload_modules  #刷新客户端生效
[[email protected] _grains]# salt ‘minion01‘ sys.reload_modules
minion01:
    True
# salt ‘minion01‘ grains.item days #获取自定义的grains)
[[email protected] _grains]# salt ‘minion01‘ grains.item days
minion01:
    ----------
    days:
    1

注:同步完成后在Minion端的以下目录中可以找到Master下发的grains文件

# ls /var/cache/salt/minion/extmods/grains/
runtime.py  runtime.pyc

2.在master端配置grains组件通过states的grains方法也可以自定义grains

2.1.在/srv/salt再创建getitem目录

#cd /srv/salt && mkdir getitem

2.2.在getitem目录新建test.sls,内容如下:

# cat test.sls
test:
  grains.present:
    - value: test

2.3.同步至minion01端,并检查结果

# salt ‘minion01‘ state.sls getitem.test
minion01:
----------
          ID: test
    Function: grains.present
      Result: True
     Comment: Set grain test to test
     Started: 17:28:48.807030
    Duration: 1032.356 ms
     Changes:   
              ----------
              test:
                  test
Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
# salt ‘minion01‘ grains.get test
minion01:
    test

注:同步完成后在Minion端的以下目录中(/etc/salt/grains)可以找到Master下发的grains文件

# cat /etc/salt/grains 
test: test

注意:这里不做自定义在Minion端操作示例,实际生产环境中一般没有用。

时间: 03-11

运维工具SaltStack之三Grains组件的相关文章

运维工具SaltStack之四Pillar组件

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

自动化运维工具SaltStack详细部署【转】

==========================================================================================一.基础介绍==========================================================================================1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的pupp

运维工具SaltStack之一安装部署

运维工具SaltStack之一安装部署 一.概述 salt是一个异构平台基础设置管理工具,使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,通常叫做Salt State System. 二.基本原理 采用C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信.minion上

自动运维工具 -saltstack安装使用(实例演示!!!)

saltstack概述 在生产环境中,服务器往往不止一两台,一般都是成千上万台服务器.这对运维人员来说管理难度太大了,而saltstack是一个新的基础平台管理工具,可以支持管理上万台服务器规模,数秒钟即可完成数据传递,是现在用的比较多的自动化运维工具之一. Salt是一个基础平台管理工具.SaltStack采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信.master监听4505和4506端口

自动化运维工具SaltStack详细部署

==========================================================================================一.基础介绍==========================================================================================1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的pupp

自动化运维工具SaltStack安装配置

SaltStack是一种全新的基础设置管理方式,部署轻松,在几分钟内可运作起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯.通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理.分发文件.采集服务器数据.操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率.规范业务配置与操作的利器. 特性:(1).部署简单.方便:(2).支持大部分UNIX/Linux及Windows环境:(3).主从集中化管理:(4

自动化运维工具Saltstack学习记录一

一.初步摸索 对于Saltstack的初步了解知道相比puppet配置简单些,实现自动化运维,减少大批量操作的失误. 二.安装及测试 1.初期做实验,准备一台master作为服务器端,一台作为客户端 设置好机器的ip地址 [email protected] ~]# cat /etc/hosts 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1         localhost l

自动化运维工具---SaltStack安装部署及简单案例

SaltStack原理 SaltStack由Master(服务端)和Minion(客户端)组成,Master和Minion之间通过ZeroMQ(消息队列)进行通讯,Master和Minion分别监听4505与4506端口,4505为master与minion认证通信端口,4506为master用来发送或者接受minion的命令执行返回信息. 当客户端启动后,会主动链接master端注册,然后一直保持该TCP连接,而master通过这条TCP连接对客户端进行控制,如果连接断开,master将对客户

部署自动化运维工具SaltStack

salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,通常叫做Salt State System. 基本原理: SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信 minio