1、系统初始化。 2、功能模块。 3、业务模块。
yaml语法三大规则
规则一:缩进
yaml使用一个固定的缩进风格表示数据层结构关系,Saltstack需要每个缩进级别由两个空格组成。============注意:一定不能使用tab键==================
规则二:冒号
yaml:
mykey: my_value
每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)
规则三:短横线
想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分
my_dictionary:
- list_value_one
- list_value_two
- list_value_three
Jinja:
1、File状态使用template参数
- template: jinja
2、模板文件里面变量使用{{名称}}
{{PORT}}
3、变量列表
- defaults:
PORT:8080
例如:(按上一篇的稍作修改)
[root@salt-master ~]# cat /srv/salt/base/dns.sls
/etc/resolv.conf:
file.managed:
- source: salt://files/resolv.conf
- user: root
- group: root
- mode: 644
- template: jinja #dns.sls 文件添加以下三行
- defaults:
DNS_SERVER: 192.168.91.88 #变量
[root@salt-master ~]# cat /srv/salt/base/files/resolv.conf
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
nameserver {{ DNS_SERVER }} #使用大括号引用变量
[root@salt-master ~]# salt '*' state.highstate #执行高级命令<==============================
salt-master.2018.com:
----------
ID: /etc/resolv.conf
Function: file.managed
Result: True
Comment: File /etc/resolv.conf updated
Started: 04:51:33.158522
Duration: 448.0 ms
Changes:
----------
diff:
---
+++
@@ -1,4 +1,4 @@
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
-nameserver 8.8.8.8
+nameserver 192.168.91.88 <===============已变更
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
salt-minion.2018.com:
----------
ID: /etc/resolv.conf
Function: file.managed
Result: True
Comment: File /etc/resolv.conf updated
Started: 04:51:39.000945
Duration: 35.955 ms
Changes:
----------
diff:
---
+++
@@ -1,4 +1,4 @@
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
-nameserver 8.8.8.8
+nameserver 192.168.91.88 <===================已变更
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
验证:
[root@salt-minion ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
[root@salt-master ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
saltstack要知道使用变量,不然学了没用。
例如:
[root@salt-master ~]# cat /srv/salt/base/files/resolv.conf
# Generated by NetworkManager
#{{ grains['fqdn_ip4'] }} #使用这个简单的变量
search localdomain 2018.com
nameserver 192.168.91.2
nameserver {{ DNS_SERVER }}
[root@salt-master ~]# salt '*' state.highstate
salt-minion.2018.com:
----------
ID: /etc/resolv.conf
Function: file.managed
Result: True
Comment: File /etc/resolv.conf updated
Started: 05:01:35.389014
Duration: 51.727 ms
Changes:
----------
diff:
---
+++
@@ -1,4 +1,5 @@
# Generated by NetworkManager
+#['192.168.91.133'] #变量已生效
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
salt-master.2018.com:
----------
ID: /etc/resolv.conf
Function: file.managed
Result: True
Comment: File /etc/resolv.conf updated
Started: 05:01:41.135629
Duration: 417.016 ms
Changes:
----------
diff:
---
+++
@@ -1,4 +1,5 @@
# Generated by NetworkManager
+#['192.168.91.134'] #变量已生效
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
最后验证:
[root@salt-minion ~]# cat /etc/resolv.conf
# Generated by NetworkManager
#['192.168.91.133']
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
[root@salt-master ~]# cat /etc/resolv.conf
# Generated by NetworkManager
#['192.168.91.134']
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
yaml语法三大规则
规则一:缩进
yaml使用一个固定的缩进风格表示数据层结构关系,Saltstack需要每个缩进级别由两个空格组成。============注意:一定不能使用tab键==================
规则二:冒号
yaml:
mykey: my_value
每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)
规则三:短横线
想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分
my_dictionary:
- list_value_one
- list_value_two
- list_value_three
Jinja:
1、File状态使用template参数
- template: jinja
2、模板文件里面变量使用{{名称}}
{{PORT}}
3、变量列表
- defaults:
PORT:8080
例如:(按上一篇的稍作修改)
[root@salt-master ~]# cat /srv/salt/base/dns.sls
/etc/resolv.conf:
file.managed:
- source: salt://files/resolv.conf
- user: root
- group: root
- mode: 644
- template: jinja #dns.sls 文件添加以下三行
- defaults:
DNS_SERVER: 192.168.91.88 #变量
[root@salt-master ~]# cat /srv/salt/base/files/resolv.conf
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
nameserver {{ DNS_SERVER }} #使用大括号引用变量
[root@salt-master ~]# salt '*' state.highstate #执行高级命令<==============================
salt-master.2018.com:
----------
ID: /etc/resolv.conf
Function: file.managed
Result: True
Comment: File /etc/resolv.conf updated
Started: 04:51:33.158522
Duration: 448.0 ms
Changes:
----------
diff:
---
+++
@@ -1,4 +1,4 @@
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
-nameserver 8.8.8.8
+nameserver 192.168.91.88 <===============已变更
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
salt-minion.2018.com:
----------
ID: /etc/resolv.conf
Function: file.managed
Result: True
Comment: File /etc/resolv.conf updated
Started: 04:51:39.000945
Duration: 35.955 ms
Changes:
----------
diff:
---
+++
@@ -1,4 +1,4 @@
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
-nameserver 8.8.8.8
+nameserver 192.168.91.88 <===================已变更
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
验证:
[root@salt-minion ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
[root@salt-master ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
saltstack要知道使用变量,不然学了没用。
例如:
[root@salt-master ~]# cat /srv/salt/base/files/resolv.conf
# Generated by NetworkManager
#{{ grains['fqdn_ip4'] }} #使用这个简单的变量
search localdomain 2018.com
nameserver 192.168.91.2
nameserver {{ DNS_SERVER }}
[root@salt-master ~]# salt '*' state.highstate
salt-minion.2018.com:
----------
ID: /etc/resolv.conf
Function: file.managed
Result: True
Comment: File /etc/resolv.conf updated
Started: 05:01:35.389014
Duration: 51.727 ms
Changes:
----------
diff:
---
+++
@@ -1,4 +1,5 @@
# Generated by NetworkManager
+#['192.168.91.133'] #变量已生效
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
salt-master.2018.com:
----------
ID: /etc/resolv.conf
Function: file.managed
Result: True
Comment: File /etc/resolv.conf updated
Started: 05:01:41.135629
Duration: 417.016 ms
Changes:
----------
diff:
---
+++
@@ -1,4 +1,5 @@
# Generated by NetworkManager
+#['192.168.91.134'] #变量已生效
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
最后验证:
[root@salt-minion ~]# cat /etc/resolv.conf
# Generated by NetworkManager
#['192.168.91.133']
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
[root@salt-master ~]# cat /etc/resolv.conf
# Generated by NetworkManager
#['192.168.91.134']
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88