saltstack3 pillar模块

pillar模块:

特点:给minion指定它想要的数据,给哪个minion指定,哪个minion能看到,,其他minion看不到,安全性得到了保障,在master端设置的

pillar应用场景:

1、敏感数据

比如给某一个配置文件设置个密码,这个密码只希望某个minion能看到

2、使用pillar处理变量的差异性

3、做配置管理时用pillar定义一些变量参数

4、定位主机

[[email protected] ~]# salt ‘*‘ pillar.items

linux-node2:

----------

linux-node1:

----------

pillar模块默认是关闭的,需要在master配置文件打开:

[[email protected] ~]# vim /etc/salt/master

pillar_opts: True

##保存退出,重启salt-master

[[email protected] ~]# salt ‘linux-node1‘ pillar.items

linux-node1:

----------

master:

----------

__role:

master

auth_mode:

1

auto_accept:

False

cache_sreqs:

True

cachedir:

/var/cache/salt/master

.........skip......................

下面我们学习怎么定义pillar的数据:

[[email protected] ~]# vim /etc/salt/master

pillar_roots:

base:

- /srv/pillar

pillar_opts: False

##保存退出,创建目录,重启salt-master

mkdir /srv/pillar

/etc/init.d/salt-master restart

[[email protected] ~]# vim /srv/pillar/apache.sls    ##jinjia模板

{% if grains[‘os‘] == ‘CentOS‘ %}

apache: httpd

{% elif grains[‘os‘] == ‘Debian‘ %}

apache: apache2

{% endif %}

单独运行上面语句没有任何作用,,下面指定哪个minion能看到apache.sls,进行调用

[[email protected] ~]# vim /srv/pillar/top.sls     ##这是pillar的top.sls,和上面的top.sls没有任何关系

base:

‘*‘:

- apache

##让所有的机器都能看到apache的pillar

[[email protected] ~]# salt ‘*‘ pillar.items

linux-node2:

----------

apache:

httpd

linux-node1:

----------

apache:

httpd

使用pillar时,在修改完配置文件后,要刷新下使之生效才可以使用,不刷新可以获取到,但不可以用

[[email protected] ~]# salt -I ‘apache:httpd‘ test.ping    ##-I是pillar的缩写

linux-node2:

Minion did not return. [No response]

linux-node1:

Minion did not return. [No response]

[[email protected] ~]# salt ‘*‘ saltutil.refresh_pillar

linux-node2:

True

linux-node1:

True

[[email protected] ~]# salt -I ‘apache:httpd‘ test.ping

linux-node1:

True

linux-node2:

True

grains和pillar的区别:

名称 存储位置 数据类型 数据采集更新方式 应用
Grains minion端 静态数据 minion启动时收集,也可以使用
saltutil.sync_grains进行刷新
存储minion基本数据。比如用于
匹配minion,自身数据可以用来
做资产管理等。
Pillar master端 动态数据 在master端定义,指定给对应的
minion。
可以使用saltutil.sync_pillar刷新。
存储master指定的数据,只有指
定的minion可以看到,用于敏感
数据保存。
时间: 2024-12-21 03:57:10

saltstack3 pillar模块的相关文章

SaltStack runners模块分析之pillar模块

/usr/lib/python2.6/site-packages/salt/runners/pillar.py pillar runner模块提供一些在Master端与Pillar编译器交互的函数 返回指定minion的pillar的编译top数据,如果没有指定minion,就使用第一个找到的minion def show_top(minion=None, saltenv='base'):     '''     Returns the compiled top data for pillar 

SaltStack源码分析之pillar模块

/usr/lib/python2.6/site-packages/salt/modules/pillar.py def get(key, default='', merge=False, delimiter=':'):     '''     .. versionadded:: 0.14     Attempt to retrieve the named value from pillar, if the named value is not     available return the p

saltstack/salt的state.sls和pillar定义以及使用

SLS(代表SaLt State文件)是Salt State系统的核心.SLS描述了系统的目标状态,由格式简单的数据构成.这经常被称作配置管理 首先,在master上面定义salt的主目录,默认是在/srv/salt/下面,vim /etc/salt/master: file_roots:    base:      - /srv/salt    dev:     - /srv/salt-dev 然后,在/srv/salt下面创建top.sls文件(如果有的话,就不用创建了,直接编辑好了) vi

saltstack grains pillar

本节讨论系统数据的两个方面:获取有关系统的数据以及将数据提供给系统. Salt 提供两个不同的子系统来分别执行这些任务: Grains. Pillar Grains Grains用于获取有关系统的数据.Grains 是有关底层操作系统,内存,磁盘和许多其他系统属性的静态信息. 当minion启动时会自动收集Grains,并定期刷新或使用远程命令刷新(salt '*' saltutil.sync_grains). Pillar pillar用户向你的系统提供数据.考虑配置一个简单系统是所需的不同自

如何使用Salt Pillar

作者言 Salt的网站上有两篇关于Pillar的文档(一,二),其中一篇内容很少,我觉得写成一篇文章更合适.本文的逻辑结构没有参照官方文档,而是根据我自己对Pillar的理解组织内容,希望能够把这个概念解释清楚.文中的示例代码来自官方文档. 我只是SaltStack的初学者,如果文中有错误的地方,请不吝赐教. 在学习的过程,我做了一些实验,犯了不少错,积累了一些经验,对SaltStack的运行也有一定了解,如果有什么问题,或是不太理解的地方,非常欢迎留言交流! Pillar是什么? Pillar

saltstack知识点

1 file server configuration salt有一个用ZeroMQ编写的高性能文件服务,它可以用很小的负载快速管理大量的文件.salt的文件服务是一个感知环境(environment aware)的文件服务,什么是环境感知?就是文件可以被分配在多个根目录下,可以在访问时指定文件路径和搜索路径.独特的环境可以跨越多个根目录覆盖,并以灵活的方式来组织文件.  salt默认的文件服务强制使用base环境,这个base环境必须被定义,当没有写明环境定义的时候,就是从这个base环境下载

salt 常用命令整理

salt 常用命令整理 ***********模块*********** 查看模块列表module salt 'minion' sys.list_modules 查看指定module的function用法 salt 'minion' sys.list_functions file 查看指定模块的详细用法 salt 'minion' sys.doc cmd ***********模块使用说明*********** 查看配置管理state模块列表 salt 'minion' sys.list_sta

day57——Saltstack二次开发

Saltstack简介 Salt 是 一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的报被安装,指定的服务在运行) 一个分布式远程执行系统,用来在远程节点(可以是单个节点,也可以是任意规则挑选出来的节点)上执行命令和查询数据 开发其的目的是为远程执行提供最好的解决方案,并使远程执行变得更好,更快,更简单 Saltstack(中国用户组 www.saltstack.cn )基于python开发,c/s架构,支持多平台,比puppet轻量,在远程执行命令时非常快捷,配置和使用比pup

saltstack小试牛刀

当我们服务器数量只有1台,2台,几台时,我们部署软件工具可以逐台登录服务器操作,但随着企业服务器数量不但增多,显然逐台登录部署已经变得不现实.这时自动化运维管理工具就闪亮登场了,目前比较流行的工具有puppet,ansible,saltstack.我曾经使用过ansible和saltstack,当机器数量较多时,ansible执行比saltstack慢很多,今天主要介绍下saltstack. 1. saltstack介绍 saltstack是由python编写的采用c/s架构的自动化运维工具,由