2016-03-18 46 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守护程序,以使更改生效。 –

相关问题