http + kerberos를 강제로 사용하는 방법(오류 WINRM CONNECTION ERROR: 401 Unauthorized.)

http + kerberos를 강제로 사용하는 방법(오류 WINRM CONNECTION ERROR: 401 Unauthorized.)

http, winRM 및 kerberos를 사용하여 Windows 시스템에 연결하도록 ansible(CentOS 6.7)을 구성 중입니다.

/etc/ansible/host파일 에서

[training]
machinename:5985

호스트별 yaml 파일을 설정했습니다.

ansible_winrm_scheme: http
ansible_port: 5985
ansible_connection: winrm

그런 다음 다음 명령을 수행하십시오.

 ansible machinename -m win_ping -vvvv

다음 오류

<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이 http를 시도했는데 401 오류가 발생했습니다. 어떻게 해결할 수 있나요?

답변1

kerberos 모듈을 설치했고 ansible_user에 @(예: 사용자 이름@realm)이 포함된 경우 Ansible은 먼저 Kerberos 인증을 시도합니다. 이 방법은 가 아닌 제어 시스템에서 Kerberos에 인증된 주체를 사용합니다 ansible_user. 제어 시스템에서 Kerberos에 로그인하지 않았거나 원격 호스트에서 해당 도메인 계정을 사용할 수 없어 실패하는 경우 Ansible은 "일반" 사용자 이름/비밀번호 인증으로 대체됩니다.~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"}

관련 정보