Chinaunix首页 | 论坛 | 博客
  • 博客访问: 173269
  • 博文数量: 114
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1116
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-09 09:49
文章分类

全部博文(114)

文章存档

2016年(74)

2015年(40)

我的朋友

分类: LINUX

2016-03-16 15:43:44

Pillar做为一允许你分发定义的全局数据到目标minion上的接口,Pillar的数据只在匹配的minions上有效。 所以该特性使Pillar常常用于存储敏感类数据.

本文通过例子带你了解如何使用和存储Pillar数据.

 

/etc/salt/master- Pillar Roots

需要在master配置文件中定义pillar_roots,其用来指定Pillar data存储在哪个目录,默认是/srv/pillar.

pillar_root:
  base:
    - /srv/pillar

 

/srv/pillar/top.sls

和State系统一样,需要先定义一个top.sls文件作为入口,用来指定数据对哪个minion有效.

base:
  '*':
    - packages
  'alpha':
    - database

上边的例子定义了packages对所有的minion有效,database只对名字为'alpha'的minion有效.

/srv/pillar/packages.sls- Pillar Data

通过例子packages文件定义不同Linux发行版的软件包名字,通过Pillar进行中心控制它们,这样就可以在State文件中引用Pillar数据使State看起来更简单.

{% if grains['os'] == 'RedHat' %}
apache: httpd
{% elif grains['os'] == 'Debian' %}
apache: apache2
{% endif %}
/srv/states/apache.sls- State Data

如上,在State文件中将可以引用Pillar数据,是State更为简单.线面是apache.sls State文件例子:

apache:
  pkg:
    - installed
    - name: {{ pillar['apache'] }}

 

/srv/pillar/database.sls- Pillar Data

另一个定义Pillar Data的例子是定义服务连接数据库的权限的配置参数:

dbname: project
dbuser: username
dbpass: password
dbhost: localhost

 

website.conf- template
// MySQL settings
define('DB_NAME', '{{ pillar['dbname'] }}');
// MySQL database username
define('DB_USER', '{{ pillar['dbuser'] }}');
// MySQL database password
define('DB_PASSWORD', '{{ pillar['dbpass'] }}');
// MySQL hostname
define('DB_HOST', '{{ pillar['dbhost'] }}');

 

如果想深入体验LINUX系统的新手,也可以先下载一个方德Linux软件中心试用一下。

免费下载地址:

阅读(739) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~