淑昊柠 发表于 2018-8-1 11:30:09

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]
查看完整版本: centos 6上安装使用saltstack以及基础管理-二(接上次)