6.salt pillar使用首先需要在master的配置文件中定义pillar_roots,用来指定pillar data存储目录 默认是 /srv/pillarpillar_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数据:[root@localhost salt]# cat top.slsdev:    '*':      - apache[root@localhost dev]# cat apache.slsapache:   pkg:     - installed     - name: {
{ pillar['apache'] }}执行结果:[root@localhost dev]# salt '*' state.highstate -v test=TrueExecuting job with jid 20140227130804329137-------------------------------------------179:---------- State: - pkg Name: httpd Function: installed Result: True Comment: Package httpd is already installed Changes: Summary------------Succeeded: 1Failed: 0------------Total: 16、salt中watch和require的用法以ntpd服务为例:ntpd: pkg.installed: - name: ntp service: - name: ntpd - running - reload: True - 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目录。