Мне нужно сменить два хоста:
Мы реализовали оба, и оба шага работают:
root@s# salt-ssh webserver-new state.sls webserver
root@s# salt-ssh tunnel-host state.sls tunnel
Как это сделать с помощью salt-ssh?
Хосты из приведенного выше примера:
Вы должны создать верхний файл:
base:
'webserver-new':
- webserver
'tunnel-host':
- tunnel
и выполнить highstate на всех хостах:
salt-ssh '*' state.apply
Более продвинутой альтернативой было бы использование оркестровка с участием ssh=true
вариант, особенно когда состояния на разных хостах зависят друг от друга, но для этого требуется мастер Salt (даже для миньонов salt-ssh).
# /srv/salt/orch/webserver.sls
setup_webserver:
salt.state:
- tgt: 'webserver-new'
- ssh: true
- sls:
- webserver
create_tunnel:
salt.state:
- tgt: 'tunnel-host'
- ssh: true
- sls:
- tunnel
- require:
- salt: setup_webserver
И выполнить это с помощью salt-run state.orchestrate orch.webserver