天天看點

Saltstack配置管理之牛刀小試

配置管理是基于遠端執行的,實作的是模版引擎的功能

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,如需轉載請自行聯系原作者