博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Saltstack数据系统Grains和Pillar(三)
阅读量:7039 次
发布时间:2019-06-28

本文共 2341 字,大约阅读时间需要 7 分钟。

  • Saltstack数据系统

分为Grains和Pillar

 

一、Grains

静态数据,当Minion启动的时候收集的MInion本地的相关信息。(包含操作系统版本、内核版本、CPU、内存、硬盘、设备型号等)

备注:不重启minion,这些信息数据是不会改变的。

1)信息管理,包括资产管理;

例:

salt 'linux-node1*' grains.ls  # 列出ID为linux-node1的主机,grains的所有keysalt 'linux-node1*' grains.items  # 列出主机的详细信息,可用于资产管理salt '*' grains.item os  # 列出所有主机的系统版本salt '*' grains.item fqdn_ip4  # 列出所有主机的IP地址

2)用于目标选择;(查询具体id的主机,查询系统版本为centos的主机 等场景)

例:

salt -G 'os:Centos' test.ping  # 所有主机系统为centos版本ping测试salt -G 'os:Centos' cmd.run 'echo 123'  # 所有主机系统为centos版本执行命令'echo 123'

3)配置管理中使用

自定义grains的item

方式一: 修改配置文件 vim /etc/salt/minion

重启 systemctl restart salt-minion

通过自定义的item,可以实现重启所有角色为apache的主机

salt '*' grains.item roles  # 获取所有主机的rolessalt -G 'roles:apache' cmd.run 'systemctl restart httpd'  # 所有主机roles为apache的执行命令systemctl restart httpd

方式二:(生产环境使用) 

修改配置文件 vim /etc/salt/grains,写法

cloud: openstack

重启 systemctl restart salt-minion

salt '*' grains.item cloud  # 获取所有主机的cloud

修改/etc/salt/grains不重启服务的方法,刷新命令如下(备注:方式一和方式二修改配置文件,通过此命令都可以不用重启服务)

salt '*' saltutil.sync_grains

grains在top FILE中的使用案例

vim /srv/salt/top.sls

base:  'linux-node1.example.com':    - web.apache  'roles:apache':    - match: grain    - web.apach

grains脚本目录,必须是base下创建_grains目录(如:/srv/salt/_grains)

创建一个python脚本在/srv/salt/_grains目录下

脚本名:my_grains.py

#!/usr/bin/env python#-*- coding: utf-8 -*-def my_grains():	# 初始化grains字典	grains = {}	# 设置字典中的key-value	grains['iaas'] = 'openstack'	grains['edu'] = 'shhnwangjian'	# 返回字典	return grains

通过master同步脚本文件至每台minion

salt '*' saltutil.sync_grains

文件放在minion主机的/var/cache/salt/minion/extmods/grains目录下

salt '*' grains.item edu  # 获取所有主机的edu

grains优先级(item名称相同的情况下): 1. 系统自带 2. grains文件写到 3. minion配置文件写的 4. 自己写的脚本

 

二、Pillar

动态数据,给特定的minion指定特定的数据。只有指定的minion自己能看到自己的数据。

salt '*' pillar.items

开启系统自带,修改配置文件

vim /etc/salt/master

重启systemctl restart salt-master

执行salt '*' pillar.items 可以看到系统自带的item

piller存在文件路径设置

mkdir /srv/pillar

重启systemctl restart salt-master

实现pillar流程

1)创建一个piller文件,python jinja2写法

mkdir /srv/pillar/webcd /srv/pillar/webvim apache.sls
{% if grains['os'] == 'CentOS' %}apache: httpd{% elif grains['os'] == 'Debian' %}apache: apache2{% endif %}

2)创建TOP FILE文件

vim /srv/pillar/top.sls
base:  'linux-node2.example.com':    - web.apache
salt '*' saltutil.refresh_pillar  # 刷新salt '*' pillar.items apache

目标选择

salt -I 'apache:httpd' test.ping

 

三、Grains VS Pillar

 

  

 

 

转载地址:http://lcxal.baihongyu.com/

你可能感兴趣的文章
zabbix 监控web-url是否正常
查看>>
C++学习路线图(重整理)
查看>>
清理系统更新的垃圾
查看>>
用户系列之三:用户登录及访问资源的过程之访问令牌篇
查看>>
Microsoft Search Server 2008部署及配置
查看>>
Android线程处理简述
查看>>
240多个jQuery插件
查看>>
$ORACLE_HOME路径更改导致的listener启动失败
查看>>
24.Silverlight多线程技术BackgroundWorker的应用,更新ProgressBar控件
查看>>
构建高性能ASP.NET站点 第五章—性能调优综述(后篇)
查看>>
Linux自动备份脚本
查看>>
BIND配置文件详解(一)
查看>>
实战Puppet 集中配置管理系统(3)——Puppet dashboard与nginx+passenger安装配置
查看>>
如何让Windows 8/Windows 10用户也用上Docker
查看>>
MySQL Batch Fetch 限制
查看>>
android组件通讯 Intent-Action属性
查看>>
C++ Builder 初学问与答 (九)
查看>>
关闭linux的SElinux的方法
查看>>
【Hibernate框架开发之五】Hibernate对象的三种状态&Session常用方法
查看>>
LINUX ROUTE配置小记
查看>>