В настоящее время я успешно использую Ansible для запуска задач на хостах, которые находятся в частной подсети в AWS, которую настраивает приведенная ниже group_vars:
ansible_ssh_common_args: '-o ProxyCommand="ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -W %h:%p -q ec2-user@bastionhost@example.com"'
Это работает нормально.
Для экземпляров Windows, не входящих в частную подсеть, работают следующие group_vars:
---
ansible_user: "AnsibleUser"
ansible_password: "Password"
ansible_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
Теперь попытка получить Ansible для развертывания на сервере Windows за бастионом, просто используя ProxyCommand, не будет работать - что яПонимаю.Я полагаю, что есть новый протокол / модуль, который я могу использовать под названием psrp.
Я полагаю, что мои group_vars для моих хостов Windows должны измениться на что-то вроде этого:
---
ansible_user: "AnsibleUser"
ansible_password: "Password"
ansible_port: 5986
ansible_connection: psrp
ansible_psrp_cert_validation: ignore
ЕслиЯ работаю только с вышеуказанными изменениями в отношении общедоступных экземпляров (и не пытаюсь подключиться через бастион), моя задача, кажется, работает нормально:
Using module file /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ansible/modules/windows/win_shell.ps1
<10.100.11.14> ESTABLISH PSRP CONNECTION FOR USER: Administrator ON PORT 5986 TO 10.100.11.14
PSRP: EXEC (via pipeline wrapper)
Я знаю, что прежде чем я смогу сделать больше измененийпопробуйте это на сервере Windows за бастионом, но все равно запустите его, чтобы увидеть, какие ошибки я получаю, чтобы подсказать, что делать дальше.Вот результат при выполнении этого на мгновении за бастионным сервером:
Using module file /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ansible/modules/windows/setup.ps1
<10.100.11.14> ESTABLISH PSRP CONNECTION FOR USER: Administrator ON PORT 5986 TO 10.100.11.14
The full traceback is:
.
.
.
.
ConnectTimeout: HTTPSConnectionPool(host='10.100.11.14', port=5986): Max retries exceeded with url: /wsman (Caused by ConnectTimeoutError(<urllib3.connection.VerifiedHTTPSConnection object at 0x110bbfbd0>, 'Connection to 10.100.11.14 timed out. (connect timeout=30)'))
Кажется, что Ansible игнорирует мои group_vars для ProxyCommand - что я не уверен, ожидаемо ли это.Я также не уверен, что последующие шаги позволят развернуть Ansible на серверах Windows за бастионом.
Какие настройки мне не хватает?