SSH для удаленного сервера с использованием

Я использую ansible для автоматизации некоторых задач. Один из них требует от меня ssh к серверу A, затем к B от A, а затем к C из B. Я не могу найти способ получить доступ к этому. Любые предложения?

Ответ 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