配置管理工具Saltstack 之 自定义grains

salt master配置

# cat /etc/salt/master|grep -v ‘#‘

interface: 192.168.xxx.xxx

worker_threads: 15
auto_accept: True
file_roots:
  base:
    - /data/salt/base

自定义grains有两种方法,第一种minion端配置,但是需要重启minion生效;第二种在master端配置,同步之后生效,不需要重启master或者minion

本例以第二种方法master端自定义grains

在salt base (/data/salt/base)目录下创建_grains目录,在 _grains目录下nginx.py

#!/usr/bin/env python
#coding:utf-8
#定义nginx配置文件、日志等信息

import os,commands
def nginx():
  grains = {}
  grains[‘nginx_bin‘] = commands.getoutput("ps -ef | grep nginx  |grep master| grep -v grep |awk ‘{print $(NF-2)}‘").split(‘\n‘)
  grains[‘nginx_conf‘] = commands.getoutput("ps -ef |grep nginx |grep master | grep -v grep |awk ‘{print $(NF)}‘").split(‘\n‘)
  nginx_dir = []
  nginx_log = []
  for files in grains[‘nginx_bin‘]:
      nginx_dir.append(os.path.dirname(os.path.dirname(files)))
      nginx_log.append(os.path.dirname(os.path.dirname(files)) + ‘/logs/access.log‘)
  grains[‘nginx_dir‘] = nginx_dir
  grains[‘nginx_log‘] = nginx_log
  return grains

if __name__ == ‘__main__‘:
    nginx()

同步并查看定义的grains信息

# salt 192.168.xxx.xxx saltutil.sync_grains
192.168.xxx.xxx:
    - grains.nginx
# salt 192.168.xxx.xxx grains.item nginx_conf nginx_log nginx_bin
192.168.xxx.xxx:
    ----------
    nginx_bin:
        - /data/PRG/nginx-magicube/sbin/nginx
        - /data/PRG/tengine-play10/sbin/nginx
    nginx_conf:
        - /data/PRG/nginx-magicube/conf/nginx.conf
        - /data/PRG/tengine-play10/conf/nginx.conf
    nginx_log:
        - /data/PRG/nginx-magicube/logs/access.log
        - /data/PRG/tengine-play10/logs/access.log

可以看到定义的grains.nginx项已经生效

时间: 2024-12-04 19:52:19

配置管理工具Saltstack 之 自定义grains的相关文章

SaltStack 如何自定义 grains 信息

首先在 minion 上编辑 grains 配置文件,然后添加自定义的 grains: [[email protected] ~]$ cat /etc/salt/grains # 这个文件默认是没有的 role: nginx [[email protected] ~]$ systemctl restart salt-minion # 重启客户端 然后在 master 上就可以根据 grains 信息进行操作: [[email protected] ~]$ salt '192.168.119.14

运维工具SaltStack之三Grains组件

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

SaltStack学习系列之自定义grains

Master端 打开存放自定义grains的目录 vim /etc/salt/master file_roots: base: - /srv/salt/ 建立自定义模块 cd /srv/salt mkdir _grains cd _grains 编写自定义grains cat disk.pyimport os def disk(): grains = {} disk = os.popen('fdisk -l |grep \'Disk\' |grep -v \'VolGroup\' | grep

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

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

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

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

运维工具SaltStack之四Pillar组件

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

自动化运维工具Saltstack详细介绍

Saltstack是一个新的基础设施管理工具.目前处于快速发展阶段,可以看做是pssh+弱化的Puppet的组合.间接的反映出了saltstack的两大功能:远程执行和配置管理. Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具.由Master和Minion构成,通过ZeroMQ进行通信. Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口:salt客户端程序不监听端口,客户端启动

DevOps - 配置管理工具Ansible

配置管理工具 配置管理工具(SCM,Software Configuration Management)可以将代码.软件方式实现的基础设施配置信息保存,也可以根据需求变化反复进行变更. 相关工具包括Ansible.Chef.Puppe.SaltStack等,版本管理工具有Git.Subversion等. 省时省力:通过自动化进行快速设置 声明式:通过配置信息对当前配置对象的具体状态进行明确描述 抽象化:配置信息能涵盖细微的环境差异 收敛性:不管对象的状态如何,最终都会达到期望的状态 幂等性:不管

自动化运维集中式管理工具saltstack的基于各个平台的部署

集中式管理工具saltstack是兼容Linux.Windows.Unix平台,能实现服务器的批量管理,命令或脚本下发,软件部署,环境搭建,配置管理,是运维人员的提高管理效率的工具.至于更详细的功能与优势这里不再介绍,网络上有很多前辈有介绍,这里只介绍部署方法. 部署环境 saltstack版本:2015.8.7 服务端master:CentOS6.7   master 被控段minion:CentOS5.11   minion01 CentOS6.7    minion02 CentOS7.2