saltstack布署實踐 【配置文件管理-state模塊】


那如果要批量修改被管機器的某個配置文件怎么做?以下給出一個最簡單案例。
 
先在主管機器master上查看/etc/salt/master配置文件
看到有以下幾行配置文件
 
# file_roots:
#   base:
#     - /srv/salt/
#   dev:
#     - /srv/salt/dev/services
#     - /srv/salt/dev/states
#   prod:
#     - /srv/salt/prod/services
#     - /srv/salt/prod/states
 
 
配置說明:默認以上的文件目錄,就是state模塊應用目錄,你可將其配置項的注釋 刪掉,額外配置一些其它你喜歡目錄樹結構,然后重啟master的服務,讓其配置生效。
 
這里為了測驗,我沒有改master配置,在base目錄下直接測試
首先創建文件夾
mkdir /srv/salt
接下來在這目錄中創建一個state模塊可解析的sls文件
vi /srv/salt/one.sls
 
#這個/tmp/foo.conf其實是一個ID,但它直接默許你要管理的minion機器上的文件位置
/tmp/foo.conf:
#使用state中的file.managed模塊來管理,具體配置參考可以通過salt 'minion' sys.state_doc  file.managed這條命令來查閱
  file.managed:
#定認本端master的源文件key
    - source:
#這里的key中的VALUE對應的是salt://foo.conf,指的是salt中base目錄(/srv/salt/) 下的foo.conf
      - salt://foo.conf
#將目標minion的文件控制其文件權限
    - user: root
    - user: root
    - mode: 644
#備份minion的源文件
    - backup: minion
 
接下來我們創建master要下發的配置文件示例
# echo 'saltstack Test' > /srv/salt/foo.conf
 
接下來在master通過state命令把配置批量推下去
salt -E '10.40.41.154.ubuntu1404.stg|10.40.41.154.ubuntu1404.stg'   state.sls one
10.40.41.154.ubuntu1404.stg:
----------
          ID: /tmp/foo.conf
    Function: file.managed
      Result: True
     Comment: File /tmp/foo.conf is in the correct state
     Started: 11:38:24.910375
    Duration: 31.449 ms
     Changes:   
 
Summary for 10.40.41.154.ubuntu1404.stg
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time:  31.449 ms
10.40.41.155.centos7.stg:
----------
          ID: /tmp/foo.conf
    Function: file.managed
      Result: True
     Comment: File /tmp/foo.conf is in the correct state
     Started: 11:38:24.917948
    Duration: 41.525 ms
     Changes:   
 
Summary for 10.40.41.155.centos7.stg
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time:  41.525 ms
 
我們當然可以從minion單台機器上向master獲取
 為驗證成功性,我們修改一下剛才master上的foo.conf
echo 'saltstack Test-2' > /srv/salt/foo.conf
在minion端發生命令
# salt-call state.sls one
local:
----------
          ID: /tmp/foo.conf
    Function: file.managed
      Result: True
     Comment: File /tmp/foo.conf updated
     Started: 11:40:30.638998
    Duration: 49.449 ms
     Changes:    x
              ----------
              diff:
                  ---
                  +++
                  @@ -1 +1 @@
                  -saltstack Test
                  +saltstack Test-2
 
Summary for local
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:  49.449 ms
 
 
比較2台minion配置文件的差異
[root@localhost salt]# cat /tmp/foo.conf
saltstack Test-2
 
root@ubuntu:/srv/salt# cat /tmp/foo.conf
saltstack Test
 
這是最簡單的配置管理
我們可通過這條命令實時追蹤它state底層執行的過程:salt-run state.event pretty=True 需要一邊開這個窗口monitor,另一窗口執行命令
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM