用Jinja2配合Grains擴(kuò)展SLS配置文件
不同系統(tǒng)安裝httpd
install_httpd:
pkg.installed:
{% if grains['os_family'] == 'Debian' %}
- names: apache2
{% elif grains['os_family'] == 'RedHat' %}
- names: httpd
{% endif %}
多系統(tǒng)安裝vim
- ①
vim:
pkg:
- installed
{% if grains['os_family'] == 'RedHat' %}
- name: vim-enhanced
{% elif grains['os_family'] == 'Debian' %}
- name: vim-nox
{% endif %}
{% if grains['os'] == 'Arch' %}
/etc/vimrc:
file:
- managed
- source: salt://vim/vimrc
- user: root
- group: root
- mode: 644
- template: jinja
- makedirs: True
- require:
- pkg: vim
{% endif %}
- ②
vim:
pkg.installed:
{% if grains['os_family'] == 'RedHat' %}
- name: vim-enhanced
{% elif grains['os_family'] == 'Debian' %}
- name: vim-nox
{% endif %}
{% if grains['os'] == 'Arch' %}
/etc/vimrc:
file.managed:
- source: salt://vim/vimrc
- user: root
- group: root
- mode: 644
- template: jinja
- makedirs: True
- require:
- pkg: vim
{% endif %}
用Jinja2配合Pillar擴(kuò)展SLS配置文件
## mkdir -pv /srv/pillar && cd /srv/pillar
## vim user133.sls
user:
- user01
- user02
- user03
## vim user134.sls
user:
- user1
- user2
- user3
## vim top.sls =====> saltstack的操作是從base標(biāo)簽開(kāi)始的瑰排,這里是篩選條件
base:
'192.168.184.133':
- user133 ## 指定user133.sls是192.168.184.133minion端的數(shù)據(jù)
'192.168.184.134':
- user134 ## 指定user134.sls是192.168.184.134minion端的數(shù)據(jù)
## salt 192.168.184.133,192.168.184.134 saltutil.refresh_pillar ===>刷新pillar數(shù)據(jù)
## salt 192.168.184.133,192.168.184.134 pillar.item user
192.168.184.133:
----------
user:
- user01
- user02
- user03
192.168.184.134:
----------
user:
- user1
- user2
- user3
## 如上胎署,那么我們就可以根據(jù)minion各自的pillar值建立相關(guān)的用戶(hù),代碼請(qǐng)看:
{% for i in pillar['user'] %}
add_{{ i }}:
user.present:
- name: {{ i }}
{% endfor %}