• Saltstack数据系统

分为Grains和Pillar

一、Grains

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

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

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

例:

salt 'linux-node1*' grains.ls  # 列出ID为linux-node1的主机,grains的所有key
salt '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  # 获取所有主机的roles
salt -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/web
cd /srv/pillar/web
vim 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

Saltstack数据系统Grains和Pillar(三)的更多相关文章

  1. 2. SaltStack数据系统: Grains、Pillar

    1. SaltStack数据系统 Grains (谷物) Pillar (支柱) 2.Grains Grains存放着Salt命令启动时收集的信息,运行时不收集 2.1  信息查询 收集资产 网卡,i ...

  2. SaltStack入门篇(三)之数据系统Grains、Pillar

    1.什么是Grains? Grains是saltstack的组件,用于收集salt-minion在启动时候的信息,又称为静态信息.可以理解为Grains记录着每台Minion的一些常用属性,比如CPU ...

  3. saltstack之(五)数据系统Grains和Pillar

    一.grains 1.什么是grainsgrains:存储minion端的信息,包括一些网络.硬件等信息,保存在minion端.一般为静态信息,非经常变化的数据. 2.grains的使用:获取mini ...

  4. SaltStack数据系统-Grains

    上一篇:SaltStack配置管理 granis:谷粒 pillar:柱子 grains是salt的一个组件,存放minion启动时候收集的信息(状态信息) 查看 salt '*' grains.it ...

  5. 【02】Saltstack:Grains and Pillar

    写在前面的话 上一节谈及了 Saltstack 的安装和初始化配置,本节将谈谈 Saltstack 中两个重要的东西,Grains 和 Pillar. 数据系统 Grains 入门 Grains 是静 ...

  6. 004-SaltStack入门篇之数据系统Grains、Pillar

    1.什么是Grains? Grains是saltstack的组件,用于收集salt-minion在启动时候的信息,又称为静态信息.可以理解为Grains记录着每台Minion的一些常用属性,比如CPU ...

  7. Linux-saltstack-3 saltstack的grains和pillar的基本使用

    @ 目录 一.简介 二.grains 1.查看客户端所有的grains项 2.查看grains的所有的项和值 3.查看某个项和值 (1)语法1: (2)语法2: 4.根据grains来匹配目标主机 例 ...

  8. SaltStack 数据系统 Grains Pillar

    grains 先来一个很好用的命令 # salt '*' grains.items \\基本上输出了所有你想要的信息 192.168.100.138: ---------- SSDs: biosrel ...

  9. 3.saltstack的grains和pillar学习笔记

    作者:刘耀 QQ:22102107 SaltStack_Grains Grains grains是minion第一次启动的时候采集的静态数据,可以用在salt的模块和其他组件中.其实grains在每次 ...

随机推荐

  1. jquery 使用方法(转)

    原文: http://www.cnblogs.com/Chenfengtao/archive/2012/01/12/2320490.html jQuery是目前使用最广泛的javascript函数库. ...

  2. C#实现清理系统内存

    金山内存整理工具.360内存清理工具非常好用,可以将系统内存最小化,提升系统运行速度.其实这些事情C#也可以做到,原理就是对系统进程中的进程内存进行逐个优化. 网上大多推荐使用系统的SetProces ...

  3. Recommending branded products from social media -RecSys 2013-20160422

    1.Information publication:RecSys 2013 author:zhengyong zhang 2.What 是对上一篇论文的拓展:利用社交媒体中用户信息 对用户购买的类别排 ...

  4. Android开发之SlidingMenu开源项目的使用和问题

    一.关于如何导入lib 第一步:New Module  点击+: 第二步:选择Import Eclipse ADT Project: 第三步:选择你想引入的lib文件,选择完成后,会开始编译你添加的项 ...

  5. android和httpClient

    一.说起来都是泪 各大组织不同步,可是我想用别人的库. 二.谷歌和阿帕奇的爱恨情仇 初,谷歌安卓新出,库中自带HttpClient 4.0测试预览版.为与安卓保持API同步,HTTPClient不敢大 ...

  6. python环境搭建-设置PyCharm软件的配色方案和Python解释器

    设置PyCharm软件的配色方案 设置Python解释器(用于Python2 or 3 的切换)

  7. Oracle报 ORA-00054资源正忙的解决办法

    来源于:http://www.cnblogs.com/loveLearning/p/3625544.html oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT 问题如下: S ...

  8. Android NestedScrolling嵌套滑动机制

    Android NestedScrolling嵌套滑动机制 最近项目要用到官网的下拉刷新SwipeRefreshLayout,它是个容器,包裹各种控件实现下拉,不像以前自己要实现事件的拦截,都是通过对 ...

  9. Java垃圾收集算法介绍

    垃圾回收器GC(Garbage Collection) 一.引用计数算法(Reference Counting) 介绍:给对象添加一个引用计数器,每当一个地方引用它时,数据器加1:当引用失效时,计数器 ...

  10. lucene-查询query->TermQuery按词条搜索

     TermQuery是最简单.也是最常用的Query.TermQuery可以理解成为“词条搜索”,在搜索引擎中最基本的搜索就是在索引中搜索某一词条,而TermQuery就是用来完成这项工作的. 在Lu ...