리눅스 서버는 ssh를 통해서 ansible이 통신하는데 윈도우 서버는 winrm 이라는 윈도우 리모트 매니져를 통한다.

winrm 은 윈2012 는 기본적으로 실행이 돼 있다. 5985 포트로 올라와있음

근데 ansible은 기본적으로 winrm의 ssl 5986 포트를 통해서 통신을 해야 한다.(5985로도 할 수는 있는데 보안 뭐 실행안되고 뭐 그런게 있는듯)

 

 

[root@master ~]# ansible -i /etc/ansible/hosts win -m win_ping
123.123.123.123 | UNREACHABLE! => {
    "changed": false, 
    "msg": "ssl: HTTPSConnectionPool(host='123.123.123.123', port=5986): Max retries exceeded with url: /wsman (Caused by ConnectTimeoutError(, 'Connection to 123.123.123.123 timed out. (connect timeout=30)'))", 
    "unreachable": true
}

 

위와같이 에러가 나는 이유는 windows hosts 서버에 winrm 5986 포트 리슨이 안돼있어서(즉 winrm ssl 실행이 안돼있어서) 이다.

 

 

그전에 winrm no module 없다고 뜨면

pip pywinrm 으로 pywinrm 설치해줘야 한다.

 

windows 2012 의 경우 파워쉘 실행후
$url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"

$file = "$env:temp\ConfigureRemotingForAnsible.ps1"

(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)

powershell.exe -ExecutionPolicy ByPass -File $file

 

 

위와 같이 실행

 

위 구문을 실행하면 된다.

 

[root@master ~]# ansible -i /etc/ansible/hosts win -m win_ping
123.123.123.123 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

잘된다.

 

hosts 파일 내용은

[win]
123.123.123.123 
[win:vars]
ansible_password='123123123'
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_user=administrator
ansible_port=5986

'job > ansible' 카테고리의 다른 글

ansible git으로 받은 awx 설치시 에러  (1) 2019.07.10
ansible - windows Win32ErrorCode 1058  (0) 2019.05.23
ansible 공부한 모듈들 정리  (0) 2019.05.02
ansible - 디렉토리 구조  (0) 2019.05.02
ansible- error  (0) 2019.04.26

+ Recent posts