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"}