cómo forzar a ansible a usar http + kerberos (error ERROR DE CONEXIÓN WINRM: 401 No autorizado).

cómo forzar a ansible a usar http + kerberos (error ERROR DE CONEXIÓN WINRM: 401 No autorizado).

Estoy configurando ansible (CentOS 6.7) para conectarme a una máquina con Windows usando http, winRM y kerberos.

Del /etc/ansible/hostarchivo

[training]
machinename:5985

He configurado el archivo yaml específico del host

ansible_winrm_scheme: http
ansible_port: 5985
ansible_connection: winrm

Luego, siguiendo el comando

 ansible machinename -m win_ping -vvvv

errores con lo siguiente

<machinename > ESTABLISH WINRM CONNECTION FOR USER: jnambood on PORT 5985 TO machinename 
<machinename > WINRM CONNECT: transport=plaintext endpoint=http://machinename :5985/wsman
<machinename > WINRM CONNECTION ERROR: 401 Unauthorized.


<machinename > WINRM CONNECT: transport=plaintext endpoint=https://machinename :5985/wsman
<machinename > WINRM CONNECTION ERROR: 500 WinRMTransport. [Errno 1] _ssl.c:492: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
machinename  | FAILED => 500 WinRMTransport. [Errno 1] _ssl.c:492: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

Ansible intentó acceder a http y obtuvo el error 401. ¿Cómo puedo arreglarlo?

Respuesta1

Si ha instalado el módulo Kerberos y ansible_user contiene @ (por ejemplo, nombre de usuario@reino), Ansible primero intentará la autenticación Kerberos. Este método utiliza el principal con el que está autenticado en Kerberos en la máquina de control y no ansible_user. Si eso falla, ya sea porque no ha iniciado sesión en Kerberos en la máquina de control o porque la cuenta de dominio correspondiente en el host remoto no está disponible, Ansible recurrirá a la autenticación "simple" de nombre de usuario/contraseña.~ Introducción a Ansible Windows

$ cat ansible/group_vars/os-windows.yml
# <user>@<realm> means use principal in krb5cc, name here doesn't matter
ansible_ssh_user: use@KERBEROS
ansible_ssh_port: 5985
ansible_connection: winrm

$ ansible host.ad.example.com -m win_ping -o
host.ad.example.com | success >> {"changed": false, "ping": "pong"}

información relacionada