Я использую ansible для автоматизации некоторых задач. Один из них требует от меня ssh к серверу A, затем к B от A, а затем к C из B. Я не могу найти способ получить доступ к этому. Любые предложения?
SSH для удаленного сервера с использованием
Ответ 1
Учитывая, что вы не используете Paramiko для ssh ( transport = ssh
), Ansible полностью использует вашу ~/.ssh/config
. Поэтому вы можете глобально определить все правила подключения в вашей конфигурации ssh.
Если по какой-то причине вы хотите, чтобы Ansible не использовал вашу конфигурацию ssh по умолчанию, но предоставлял отдельную конфигурацию, вы можете определить это в вашем ansible.cfg
:
[ssh_connection]
ssh_args= -F "/path/to/ssh/config/specifically/for/ansible"
В вашей конфигурации ssh настройте правила подключения. Чтобы придерживаться вашего примера:
Host HostA
HostName real-host-name-A.com
Host HostB
HostName real-host-name-B.com
ProxyCommand ssh -q HostA nc %h %p
Host HostC
HostName real-host-name-C.com
ProxyCommand ssh -q HostB nc %h %p
- Соединения с А прямые
- Соединения с B проходят через A
- Соединения с C проходят через B, который проходит через A