como forçar o ansible a usar http + kerberos (erro WINRM CONNECTION ERROR: 401 Unauthorized.)

como forçar o ansible a usar http + kerberos (erro WINRM CONNECTION ERROR: 401 Unauthorized.)

Estou configurando o ansible (CentOS 6.7) para conectar-se à máquina Windows usando http, winRM e kerberos

Do /etc/ansible/hostarquivo

[training]
machinename:5985

Eu configurei o arquivo yaml específico do host

ansible_winrm_scheme: http
ansible_port: 5985
ansible_connection: winrm

Então, seguindo o comando

 ansible machinename -m win_ping -vvvv

erros ao seguir

<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 tentou http, obteve erro 401. Como posso consertar isso?

Responder1

Se você instalou o módulo Kerberos e ansible_user contém @ (por exemplo, username@realm), o Ansible tentará primeiro a autenticação Kerberos. Este método usa o principal com o qual você está autenticado no Kerberos na máquina de controle e não no ansible_user. Se isso falhar, seja porque você não está conectado ao Kerberos na máquina de controle ou porque a conta de domínio correspondente no host remoto não está disponível, o Ansible retornará à autenticação “simples” de nome de usuário/senha.~Introdução ao 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"}

informação relacionada