Назад | Перейти на главную страницу

ansible win_ping получает сообщение об ошибке

На удаленном сервере Windows

 PS C:\Users\name.domain> Winrm quickconfig
 WinRM service is already running on this machine.
 WinRM is already set up for remote management on this computer.

На моем хосте Linux, на котором установлен Ansible:

 # klist
 Ticket cache: FILE:/tmp/krb5cc_0
 Default principal: user_name@domain.local

Valid starting       Expires              Service principal
09/19/2016 10:02:18  09/19/2016 20:02:18  krbtgt/DOMAIN.LOCAL@DOMAIN.LOCAL
    renew until 09/26/2016 10:02:12


/etc/ansible/hosts

 [local]
 127.0.0.1

 [windows]
 ip address 

[windows:vars]
ansible_user= name@Domain.com
ansible_password= password
ansible_port= 5985
ansible_connection= winrm



# ansible windows -m win_ping
 ip_address | UNREACHABLE! => {
 "changed": false,
"msg": "kerberos: requested auth method is kerberos, but requests_kerberos    is not installed, ssl: HTTPSConnectionPool(host='ip_address', port=5986): Max   retries exceeded with url: /wsman (Caused by   ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x3585d90>, 'Connection to ip_address timed out. (connect timeout=30)'))",
"unreachable": true
}

Сообщение об ошибке довольно ясное:

"msg": "kerberos: запрошенный метод аутентификации - kerberos, но requests_kerberos не установлен

Чтобы использовать поддержку Ansible Windows с аутентификацией Kerberos, на управляющем хосте должны быть установлены некоторые зависимости:

Если вы хотите подключиться к учетным записям домена, опубликованным через Active Directory (в отличие от локальных учетных записей, созданных на удаленном хосте), вам необходимо установить модуль «python-kerberos» на управляющем хосте Ansible (и библиотеки MIT krb5, в зависимости от на). Узлу управления Ansible также требуется правильно настроенная учетная запись компьютера в Active Directory.

Обратитесь к документации Ansible для поддержка активного каталога для дальнейших инструкций.

Дело о ping модули могут немного сбивать с толку. Эти модули используются для того, чтобы Ansible мог выполнять команды на целевом хосте. Можно было подумать, что Ansible запустится ping на блоке управления на целевой хост. Но это не тот случай.

Итак, собственно win_ping модуль написан на PowerShell, будет выполняться на целевом хосте и поэтому требует правильной настройки Kerberos. Кодекс win_ping модуль находится в Ansible Репозиторий ansible-modules-core.

Смотрите также Документация Ansible: как работают модули Windows.