centos 6上安装使用saltstack以及基础管理-二(接上次)
6.salt pillar使用首先需要在master的配置文件中定义pillar_roots,用来指定pillar data存储目录 默认是 /srv/pillar
pillar_root:
base:
- /srv/pillar
和state系统一样,需要先定义一个top.sls文件作为入口。用来指定数据对那个minion有效
base:
'*':
- packages
这个例子定义了packages对所有的minion有效,如果只想对某个minion有效的话:
base:
'179':
- packages
可以在tops.sls文件中写入多个条件如:
base:
'*':
- packages
'179':
- packages
通过例子packeages文件定义不同linux发行版的软件包名字,通过pillar进行中心控制,这样就可以在state文件中引用pillar数据使state看起来更简单
{% if grains['os'] == 'Debian' %}
apache: apache2
{% elif grains['os'] == 'CentOS' %}
apache: httpd
{% endif %}
然后我们在state文件中引用pillar数据:
# cat top.sls
dev:
'*':
- apache
# cat apache.sls
apache:
pkg:
- installed
- name: {{ pillar['apache'] }}
执行结果:
# salt '*' state.highstate -v test=True
Executing job with jid 20140227130804329137
-------------------------------------------
179:
----------
State: - pkg
Name: httpd
Function:installed
Result: True
Comment: Package httpd is already installed
Changes:
Summary
------------
Succeeded: 1
Failed: 0
------------
Total: 1
6、salt中watch和require的用法
以ntpd服务为例:
ntpd:
pkg.installed:
- name: ntp
service:
- name: ntpd
- running
-> - require:
- pkg: ntp
- watch:
- file: /etc/ntp.conf
/etc/ntp.conf:
file.managed:
- source: salt://ntp/files/ntp.conf
- backup: minion
这个例子中,pkg.install指需要安装的包,service中 require告诉salt,要启动ntp服务,必须要先安装ntp,watch表示监控/etc/ntp.conf,如果这个文件发生变动,则重启服务重读配置,backup表示在更新前会备份原有的文件,备份文件在设置的cache目录。
页:
[1]