文章目录
1. pillar
1.1 pillar简介
- pillar和grains-样也是一个数据系统,但是应用场景不同。
- pillar是将信息动态的存放在master端,主要存放私密、敏感信息(如用户名密码等),而且可以指定某一个minion才 可以看到对应的信息。
- pillar更加适合在配置管理中运用
1.2 常用命令
- 刷新pillar数据
salt '*' saltutil.refresh_pillar
- 查询pillar数据
salt '*' pillar.items
salt '*' pillar.item XXX
- 数据匹配
salt -I XXX:XXX test.ping
1.3 定义pillar
- 创建pillar默认目录
mkdir /srv/pillar
- 自定义pillar项
vim /srv/pillar/package.sls
{
% if grains['fqdn'] == 'server3' %}
package: nginx
{
% elif grains['fqdn'] == 'server2' %}
port: 80
bind: 192.168.17.2
{
% endif %}
vim /srv/pillar/top.sls
base:
'*':
- package
- 刷新pillar数据
salt '*' saltutil.refresh_pillar
- 查询pillar数据
salt '*' pillar.items
salt '*' pillar.item package
- 数据匹配
salt -I package:nginx test.ping
1.4 应用于apache
vim /srv/pillar/package.sls
{
% if grains['fqdn'] == 'server3' %}
package: nginx
{
% elif grains['fqdn'] == 'server2' %}
port: 8080
bind: 192.168.17.2
{
% endif %}
vim /srv/salt/apache/init.sls
apache:
pkg.installed:
- pkgs:
- httpd
file.managed:
- source: salt://apache/files/httpd.conf
- name: /etc/httpd/conf/httpd.conf
- template: jinja
- context:
port: {
{
pillar['port'] }}
bind: {
{
pillar['bind'] }}
service.running:
- name: httpd
- enable: true
- watch