集中化管理平台saltstack学习--grains(3)

grains

grains 这个类似puppet的facter 负责采集客户端一些基本信息,这个也完全可以自定义。一般从服务器端定义然后推下去,采集完后,再汇报上来。

altstack里的Grains功能,是控制minion端的静态变量,在master端通过Grains可以获得minion对应的变量值。

查看minion的全部静态变量,可以通过如下实现:

# salt ‘*‘ grains.ls

JYD-test-3:

- SSDs

- biosreleasedate

- biosversion

- cpu_flags

- cpu_model

- cpuarch

......

所列出静态变量是成组出现的,如上只是列出了组的key(用python的思维理解)

用如下命令可列出被控端的key及vlaue:

# salt ‘*‘ grains.items

JYD-test-3:

----------

SSDs:

biosreleasedate:

07/02/2015

biosversion:

6.00

cpu_flags:

- fpu

......

也可以指定查看key值,如查看系统类型(grains.item后面跟的为grains组的key):

# salt ‘*‘ grains.item osfinger --out=pprint

{‘JYD-test-2‘: {‘osfinger‘: ‘CentOS-6‘}}

{‘JYD-test-3‘: {‘osfinger‘: ‘CentOS-6‘}}

  自定义grains.item

第一种方法(很少使用):

在minion端:

修改配置文件/etc/salt/minion  中 去掉 default_include: minion.d/*.conf 前的#号
在minion端的/etc/salt/minion.d/ 目录下新建并编辑conf文件,如:

# vi /etc/salt/minion.d/web.conf

grains:             #必须声明

web: nginx

user: dong

重启salt-minion服务,并在master端验证:

# /etc/init.d/salt-minion restart

Stopping salt-minion daemon:                               [确定]

Starting salt-minion daemon:                               [确定]

# salt ‘JYD-test-2‘ grains.item web --out=pprint

{‘JYD-test-2‘: {‘web‘: ‘nginx‘}}

第二种方法:

在master端添加

创建/srv/salt/_grains/目录,编写grains文件(python代码)

# mkdir -pv /srv/salt/_grains/

mkdir: 已创建目录 "/srv/salt"

mkdir: 已创建目录 "/srv/salt/_grains/"

以下为获取被控主机系统允许最大打开文件数的grains数据的拓展模块。

# vi /srv/salt/_grains/get_openfile.py

import os,sys,commands

def Grains_openfile():

grains = {}

#init default value

_open_file=65536

try:

getulimit=commands.getstatusoutput(‘source /etc/profile;ulimit -n‘)

except Exception,e:

pass

if getulimit[0]==0:

_open_file=int(getulimit[1])

grains[‘max_open_file‘] = _open_file    #max_open_file是grains的项,_open_file即grains这一项的值。

return grains

注:python的必须缩进,否则会识别错误。

将该python文件同步到被控主机,并刷新重载模块使之生效。

# salt ‘JYD-test-2‘ saltutil.sync_grains

JYD-test-2:

- grains.get_openfile

# salt ‘JYD-test-2‘ sys.reload_modules

JYD-test-2:

True

在被控端上查看

# ll /var/cache/salt/minion/extmods/grains/        #存放扩展模块文件

-rw-------. 1 root root 353 2月  26 19:00 get_openfile.py

-rw-------. 1 root root 646 2月  26 19:11 get_openfile.pyc

# ll /var/cache/salt/minion/files/base/_grains/      #临时存放位置

-rw-------. 1 root root 353 2月  26 19:00 get_openfile.py

大功告成,接下来在master端查看效果。

# salt ‘JYD-test-2‘ grains.item max_open_file

JYD-test-2:

----------

max_open_file:

1024

时间: 2024-10-12 10:20:41

集中化管理平台saltstack学习--grains(3)的相关文章

4、python自动化运维——集中化管理平台Saltstack

集中化管理平台--Saltstack Saltstck作为服务器基础架构集中化管理平台,具备配置管理,远程执行,监控等功能.可以简单地理解为简化版的puppet,加强版的func.废话不多说,直接上手. Saltstack安装以及配置 安装所需要的组件 主控端:salt-master被控端:salt-minion 安装过程 1.安装所需要的epel作为部署saltstack的yum源:yum install -y epel 2.安装salt-master/salt-minionyum insta

集中化管理平台Saltstack

集中化管理平台Saltstack Saltstack是一个服务器基础架构集中化管理平台,开始于2011年的一个项目,具备配置管理.远程执行.监控等功能,一般可以理解成简化版的puppet和加强版的func.Slatstack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq.PyCrypto.Pyjinja2.python-msgpack和PyYAML等)构建. 关于什么是Salt,请查阅官方说明:http://docs.saltstack.cn/t

集中化管理平台saltstack——自动化实现apache的安装与配置

what-saltstack 1>是一个服务器基础架构集中化管理平台,具备配置管理,远程执行,监控等功能. 2>使用Python开发,部署简单,主从集中化管理,支持API和自定义模块. 3>由Master和Minion构成(基于证书验证),通过轻量级消息队列ZeroMQ进行通信. how-saltstack Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口: salt客户端程序不监听端口,客户端启动

centos6.5上部署集中化管理平台Saltstack!!!

项目背景: 通过部署Saltstsck环境,我们可以在成千上万的服务器上做到批量执行命令,根据不同业务特点我们可以进行配置集中化管理.分发文件.采集服务器数据.软件包管理.可以搭建我们自己的自动化运维平台,满足我们的不同场景下的需求. 实验环境: vmware workstation 11 centos6.5的系统下 Saltstack服务器:ip:192.168.0.27   防火墙关闭  setenforce 0 Saltstck被控端: ip:192.168.0.44   防火墙关闭  s

集中化管理平台Saltstack远程执行命令

官网:http://saltstack.com/ 国内:http://www.saltstack.cn/ 命令格式: salt '<操作目标>' <方法> <参数> 1.查看minion001主机使用: [[email protected] ~]# salt 'minion001' cmd.run 'free -m' minion001:                  total       used       free     shared    buffers

集中化管理平台Saltstack安装部署

Saltstack一般认为是puppet的简化版和func的加强版 安装: 部署环境: 角色 hostname ip 操作系统 python版本 master master 192.168.224.141 CentOS release 6.4 (Final) Python 2.6.6 minion001 minion001 192.168.224.142 CentOS release 6.4 (Final) Python 2.6.6 minion002 minion002 192.168.224

集中化管理平台Saltstack安装配置

1.安装 #yum install salt-master -y  或  yum install salt-minion -y #chkconfig salt-master on #service salt-master start 2.防火墙配置 #iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT ................................................

5、python自动化运维——集中化管理平台Ansible

集中化管理平台Ansible 简介:Ansible是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台特点:1.部署简单,只需在主控端部署Ansible环境,被控端不用进行任何操作2.默认使用SSH协议对设备进行管理3.主从集中化管理4.提供一个Web管理界面和RESET API接口--AWX平台 Ansible安装及配置 1.安装ansible:yum install –y ansible 2.修改配置文件:/etc/ansible/hosts,添加主机IP. 193.192.168

集中化管理平台 — Ansible 详解

Ansible 简介 Ansible 类似于Saltstack,是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台.Ansible基于Python语言实现,由Paramiko和PyYAML两个关键模块构建.Ansible具有以下特点: 部署简单,只需要在主控端部署Ansible环境,被控端无需做任何操作: 默认使用SSH(Secure SHell)协议对设备进行管理: 主从集中化管理: 配置简单.功能强大.扩展性强: 支持API及自定义模块,可通过Python轻松扩展: 通过Play