我如何在连接时提供 salt minion
How can I provision salt minion on connect
我有一个 AWS 设置,其中有一个指定的 salt master,它接受所有传入的密钥和基于 subnet/designated ip 地址的规定。如何在不登录主服务器的情况下在连接时立即配置我的 minions?
使用 reactor 系统可以做到这一点。具体如何操作取决于 "on connect" 的含义。如果你想让一个 minion 在每次连接时都处于高状态,那么你想要对事件标签做出反应:
salt/minion/*/start
如果你想在 minion 第一次连接时(当它的密钥被接受时)执行高状态 仅,那么你需要关闭自动接受,并对
做出反应
salt/auth
标签。 (在这种情况下,您需要接受密钥,然后在等待 minion 实际连接后执行 highstate。)因为这更复杂,我将向您展示第一个。您应该能够推断后一种情况。
首先你需要告诉 salt-master 对标签做出反应:
# 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'] }}
实施后,我在我的 minion 日志中得到了这个(带有片段):
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
John Hazen 的方法绝对有效。您还可以启用一个更简单的选项:startup_states
如果您在 minion 配置中设置了此设置,则每次 minion 启动时都会获得 运行 的高状态:
startup_states: highstate
https://docs.saltstack.com/en/latest/ref/states/startup.html
我有一个 AWS 设置,其中有一个指定的 salt master,它接受所有传入的密钥和基于 subnet/designated ip 地址的规定。如何在不登录主服务器的情况下在连接时立即配置我的 minions?
使用 reactor 系统可以做到这一点。具体如何操作取决于 "on connect" 的含义。如果你想让一个 minion 在每次连接时都处于高状态,那么你想要对事件标签做出反应:
salt/minion/*/start
如果你想在 minion 第一次连接时(当它的密钥被接受时)执行高状态 仅,那么你需要关闭自动接受,并对
做出反应salt/auth
标签。 (在这种情况下,您需要接受密钥,然后在等待 minion 实际连接后执行 highstate。)因为这更复杂,我将向您展示第一个。您应该能够推断后一种情况。
首先你需要告诉 salt-master 对标签做出反应:
# 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'] }}
实施后,我在我的 minion 日志中得到了这个(带有片段):
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
John Hazen 的方法绝对有效。您还可以启用一个更简单的选项:startup_states
如果您在 minion 配置中设置了此设置,则每次 minion 启动时都会获得 运行 的高状态:
startup_states: highstate
https://docs.saltstack.com/en/latest/ref/states/startup.html