配置管理是基于遠端執行的,實作的是模版引擎的功能
top file的作用:1 指定環境 2 指定Minion 3 指定需要加載的子產品
top file必須放在/srv/salt/base下面:
[root@linux-node1 salt]# ll /srv/salt/base/
總用量 8
-rw-r--r-- 1 root root 172 11月 16 21:58 apache.sls
-rw-r--r-- 1 root root 53 11月 16 22:43 top.sls
[root@linux-node1 salt]# vim /etc/salt/master
419 file_roots:
420 base:
421 - /srv/salt/base
422 prod:
423 - /srv/salt/prod
424 test:
425 - /srv/salt/test
根據/etc/salt/master檔案中的配置來建立對應的目錄
[root@linux-node1 salt]# mkdir /srv/salt/{test,base,prod}
然後重新啟動salt-master
[root@linux-node1 salt]# /etc/init.d/salt-master restart
Stopping salt-master daemon: [确定]
Starting salt-master daemon: [确定]
應用場景1:修改minion上面的dns檔案
在基礎環境下建立一個files目錄,放範例檔案
[root@linux-node1 ~]# mkdir /srv/salt/base/files
[root@linux-node1 ~]# vim /srv/salt/base/dns.sls
/etc/resolv.conf:
file.managed:
- source: salt://files/resolv.conf
- user: root
- group: root
- mode: 644
[root@linux-node1 base]# cp /etc/resolv.conf ./files/ 将機器上面的/etc/resolv.conf檔案拷貝到/srv/salt/base/files/目錄下,将第一行删除,如下:
執行狀态:
[root@linux-node1 ~]# salt '*' state.sls dns =====================>直接執行狀态,如下是傳回結果
linux-node1.example.com:
----------
ID: /etc/resolv.conf =====================>檔案ID
Function: file.managed =====================>狀态和子產品
Result: True =====================>傳回結果
Comment: File /etc/resolv.conf updated =====================>輸出狀态顯示
Started: 13:05:20.253533 =====================>開始時間
Duration: 71.313 ms =====================>執行時間
Changes: =====================>如下是檔案改變的地方
----------
diff:
---
+++
@@ -1,2 +1,1 @@
-# Generated by NetworkManager
nameserver 10.0.0.2
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
Total states run: 1
linux-node2.example.com:
ID: /etc/resolv.conf
Function: file.managed
Result: True
Comment: File /etc/resolv.conf updated
Started: 13:05:20.500400
Duration: 80.807 ms
Changes:
[root@linux-node1 base]# cat files/resolv.conf
nameserver 10.0.0.2
[root@linux-node1 ~]# cat /etc/resolv.conf
[root@linux-node2 ~]# cat /etc/resolv.conf
結論:linux-node1和linux-node2上面的/etc/resolv.conf檔案都修改成功,代表狀态執行成功。
場景2: 用進階狀态修改檔案:
[root@linux-node1 ~]# vim /srv/salt/base/files/resolv.conf
#hehe
[root@linux-node1 ~]# cat /srv/salt/base/top.sls
base: ===========================>指定的是哪個環境
'*': ===========================>指定哪台minion
- dns ===========================>指定哪個狀态子產品
執行結果展示:
[root@linux-node1 ~]# salt '*' state.highstate
Started: 13:19:01.723665
Duration: 48.675 ms
@@ -1,1 +1,3 @@
+#hehe ========>此為添加的地方
+
Started: 13:19:01.766432
Duration: 33.202 ms
+#hehe ========>此為添加的地方
如上所示,檔案修改成功
本文轉自陳繼松 51CTO部落格,原文連結:http://blog.51cto.com/chenjisong/1714321,如需轉載請自行聯系原作者