在salt,minion正常連接情況下
在/srv/salt/下創建union.sls nginx.sls 和 bind.sls
union.sls如下:
include:
- nginx
- bind
nginx.sls如下:
{%- if ( grains['host'] == "hw_1" ) %}
nginx:
pkg:
- name: nginx
- installed
service:
- name: nginx
- running
- reload: True
- watch:
- file: /etc/nginx/nginx.conf
/etc/nginx/nginx.conf:
file.managed:
- source: salt://files/nginx/nginx.conf
- user: root
- mode: 644
- backup: minion
{%- endif %}
bind.sls如下:
{%- if ( grains['host'] == "hw_2" ) %}
bind:
pkg:
- installed
named:
service:
- running
- reload: True
- enable: True
- watch:
- file: /etc/named.conf
- file: /var/named/1.1.1.in-addr.arpa
- file: /var/named/2.2.2.in-addr.arpa
- file: /var/named/optest1.com
- file: /var/named/optest2.com
/etc/named.conf:
file.managed:
- source: salt://files/named/named.conf
- user: named
- mode: 644
- backup: minion
/var/named/1.1.1.in-addr.arpa:
file.managed:
- source: salt://files/named/1.1.1.in-addr.arpa
- user: root
- mode: 644
- backup: minion
/var/named/2.2.2.in-addr.arpa:
file.managed:
- source: salt://files/named/2.2.2.in-addr.arpa
- user: root
- mode: 644
- backup: minion
/var/named/optest1.com:
file.managed:
- source: salt://files/named/optest1.com
- user: root
- mode: 644
- backup: minion
/var/named/optest2.com:
file.managed:
- source: salt://files/named/optest2.com
- user: root
- mode: 644
- backup: minion
{%- endif %}
測試命令:salt '*' state.sls union test=true
注重點:
1.- watch
-file: /var/named/optest2.com 指定的是minion的目錄
2./etc/named.conf:指定的是minion的目錄需要被替換的目錄而非master的目錄
3.source: salt://files/named/named.conf 是指master的/srv/salt/files/named/named.conf
4.使用grains['host'] 獲取minion主機名進行判斷,將minion主機名更名爲ID
第二種方法:
只創建一個文件夾union.sls
{%- if ( grains['host'] == "hw_1" ) %}
nginx:
pkg: #定義使用(pkg state module)
- name: nginx #安裝nginx(yum安裝)
- installed
named:
service: #保持服務是啓動狀態
- name: nginx
- running
- reload: True
- watch:
- file: /etc/nginx/nginx.conf
/etc/nginx/nginx.conf: #絕對路徑
file.managed:
- source: salt://files/nginx/nginx.conf #nginx.conf配置文件在salt上面的位置
- user: root
- mode: 644
- backup: minion
{%- endif %}
{%- if ( grains['host'] == "hw_2" ) %}
bind:
pkg:
- installed
service:
- running
- reload: True
- watch:
- file: /etc/named.conf
- file: /var/named/1.1.1.in-addr.arpa
- file: /var/named/2.2.2.in-addr.arpa
- file: /var/named/optest1.com
- file: /var/named/optest2.com
/etc/named.conf:
file.managed:
- source: salt://files/named/named.conf
- user: named
- mode: 644
- backup: minion
/var/named/1.1.1.in-addr.arpa:
file.managed:
- source: salt://files/named/1.1.1.in-addr.arpa
- user: root
- mode: 644
- backup: minion
/var/named/2.2.2.in-addr.arpa:
file.managed:
- source: salt://files/named/2.2.2.in-addr.arpa
- user: root
- mode: 644
- backup: minion
/var/named/optest1.com:
file.managed:
- source: salt://files/named/optest1.com
- user: root
- mode: 644
- backup: minion
/var/named/optest2.com:
file.managed:
- source: salt://files/named/optest2.com
- user: root
- mode: 644
- backup: minion
{%- endif %}