Я уже 3 дня сталкиваюсь с проблемой настройки Ansible на CentOs (управляющая машина) для работы с хостом Windows.
Я запустил ConfigureRemotingForAnsible.ps1 из здесь для настройкиWindows хост.Чтобы убедиться, что WinRM настроен правильно, я также использовал другую Windows для проверки двух вещей:
- Выполнить
Test-NetConnection -ComputerName 'win1.domain.local' -Port 5985/5986
- Выполнить
Test-WsMan -ComputerName 'win1.domain.local' -Port 5985/5986
ОтНа тестируемой Windows-машине управления все выглядит отлично.Мне удалось создать PSSession и удаленно выполненный сценарий.
На компьютере CentOs я использую telnet для тестирования прослушиваемого порта 5985 и 5986.
Мой group_vars / win.yml выглядит следующим образом:
ansible_user: user@domain.local
ansible_password: Password
ansible_connection: winrm
ansible_winrm_transport: kerberos
ansible_port: 5986
ansible_winrm_server_cert_validation: ignore
Мой хост - это просто полное доменное имя компьютера, как показано ниже
[win]
win1.domain.local
Моя команда для проверки
ansible-playbook -i hosts playbook.yml -vvvv
Моя книга воспроизведения очень проста.Просто проверьте каталог C: на целевом хосте Windows.До сих пор я всегда сталкиваюсь с проблемой:
Using module file /usr/lib/python2.7/site-packages/ansible/modules/windows/setup.ps1
Pipelining is enabled.
<win1.domain.local> ESTABLISH WINRM CONNECTION FOR USER: user@domain.local on PORT 5986 TO win1.domain.local
calling kinit with subprocess for principal user@domain.local
/usr/lib/python2.7/site-packages/winrm/transport.py:299: UserWarning: Function <unbound method HTTPKerberosAuth.__init__> does not contain optional arg force_preemptive, check installed version with pip list
% (str(function), name))
/usr/lib/python2.7/site-packages/winrm/transport.py:299: UserWarning: Function <unbound method HTTPKerberosAuth.__init__> does not contain optional arg delegate, check installed version with pip list
% (str(function), name))
/usr/lib/python2.7/site-packages/winrm/transport.py:299: UserWarning: Function <unbound method HTTPKerberosAuth.__init__> does not contain optional arg send_cbt, check installed version with pip list
% (str(function), name))
/usr/lib/python2.7/site-packages/winrm/transport.py:299: UserWarning: Function <unbound method HTTPKerberosAuth.__init__> does not contain optional arg principal, check installed version with pip list
% (str(function), name))
/usr/lib/python2.7/site-packages/winrm/transport.py:299: UserWarning: Function <unbound method HTTPKerberosAuth.__init__> does not contain optional arg sanitize_mutual_error_response, check installed version with pip list
% (str(function), name))
/usr/lib/python2.7/site-packages/winrm/transport.py:299: UserWarning: Function <unbound method HTTPKerberosAuth.__init__> does not contain optional arg hostname_override, check installed version with pip list
% (str(function), name))
fatal: [win1.domain.local]: UNREACHABLE! => {
"changed": false,
"msg": "kerberos: HTTPSConnectionPool(host='win01-wmy4anstz.daa.local', port=5986): Max retries exceeded with url: /wsman (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f30681818d0>: Failed to establish a new connection: [Errno -2] Name or service not known',))",
"unreachable": true
}
Я не уверен, что мне не хватает.Я протестировал билет Kerberos с моей учетной записью user@domain.local и не обнаружил никаких проблем.
Ниже приведена версия моих пакетов
- Ansible: 2.8.0
- Pywinrm: 0.3.0
- pykerberos: 1.2.1
- request-kerberos: 0.12.0