2016-03-18 49 views
2

我有一個AWS安裝程序,其中有一個指定的salt master,它接受所有傳入密鑰以及基於子網/指定ip地址的規定。我怎樣才能立即配置我的奴才沒有登錄到主服務器這樣做?如何在連接上配置salt minion

+0

爲什麼要投票?這不是一個具體而明智的問題嗎? –

回答

5

要做到這一點的方法是使用reactor系統。具體怎麼做取決於你的「連接」。如果你想有一個奴才來highstate每次連接時間,那麼你要到事件標記反應:

salt/minion/*/start 

如果要執行highstate 只有當僕從連接的第一次(當其密鑰被接受),那麼你需要關閉自動接受,並對

salt/auth 

標籤作出反應。 (在這種情況下,你需要接受密鑰,然後在等待真正的連接之後執行高端狀態。)由於這更復雜,我會告訴你第一個。你應該能夠推斷後一種情況。

首先,你需要告訴鹽主向標籤反應:

# File: /etc/salt/master.d/reactor.conf 
reactor: 
    - 'salt/minion/*/start': 
    - /srv/reactor/highstate.sls 

然後你需要的highstate.sls文件:

# File: /srv/reactor/highstate.sls 
minion_highstate: 
    local.state.highstate: 
    - tgt: {{ data['id'] }} 

實施此之後,我得到這個(與snippage)在我的奴才日誌:

2016-03-18 23:07:06,009 [salt.cli.daemons ][INFO ][21627] Setting up the Salt Minion "jhazentest05.example.net" 
2016-03-18 23:07:06,219 [salt.cli.daemons ][INFO ][21627] The salt minion is starting up 
2016-03-18 23:07:06,707 [salt.minion  ][INFO ][21627] Minion is ready to receive requests! 
2016-03-18 23:07:06,708 [salt.minion  ][INFO ][21627] User root Executing command state.highstate with jid 20160318230706334642 
2016-03-18 23:07:09,699 [salt.minion  ][INFO ][21700] Returning information for job: 20160318230706334642 
+0

非常感謝你!這非常有幫助! –

3

約翰哈森的方法絕對有效。還有一個較爲簡單的選擇,你可以啓用:startup_states

如果你有這個集附庸配置,那麼highstate將獲得每次運行附庸啓動:

startup_states: highstate

https://docs.saltstack.com/en/latest/ref/states/startup.html

+0

你知道小兵配置是否可以從一個狀態管理?實現OP所需的另一種有用的方法是擁有一個改變minion配置以在那裏設置'startup_states:highstate'的狀態。 – thiagowfx

+0

是的,你可以從一個狀態管理一個小型配置。請記住重新啓動salt-minion守護程序,以使更改生效。 –

相關問題