Portál AbcLinuxu, 8. května 2025 00:34

Dotaz: ansible windows winrm nefunguje

28.4.2016 21:51 majales | skóre: 29 | blog: Majales
ansible windows winrm nefunguje
Přečteno: 362×
Odpovědět | Admin
Zdravím, Snažím se rozchodit ansible s windows stroji a narazil jsem na problém. Na windows 7 jsem úspěšně nakonfiguroval self-signed certifikát a nastavil s ním winrm přes https. Po importu certifikátu na druhý windows stroj z PowerShellu funguje toto:
Enter-PSSession -ComputerName \stanice5.domena.cz -Credential administrator -UseSSL
Vyskočí grafický prompt a po zadání hesla se připojí ke vzdálenému stroji přes powershell.

S Ansible se mi to nepovede. Po volání jednoduchého win_ping je výsledek toto:
root@debian-backup:~/ansible_test# ansible windows -i hosts -m win_ping -vvvvvvvv
Using /root/ansible_test/ansible.cfg as config file
SSH password:
Loaded callback minimal of type stdout, v2.0
<\stanice5.domena.cz> ESTABLISH WINRM CONNECTION FOR USER: administrator on PORT 5986 TO stanice5.domena.cz
<\stanice5.domena.cz> WINRM CONNECT: transport=ssl endpoint=https://\\stanice5.domena.cz:5986/wsman
<\stanice5.domena.cz> WINRM CONNECTION ERROR: 401 Unauthorized.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/ansible/plugins/connection/winrm.py", line 134, in _winrm_connect
    protocol.send_message('')
  File "/usr/local/lib/python2.7/dist-packages/winrm/protocol.py", line 193, in send_message
    return self.transport.send_message(message)
  File "/usr/local/lib/python2.7/dist-packages/winrm/transport.py", line 125, in send_message
    raise UnauthorizedError(transport='plaintext', message=ex.msg)
UnauthorizedError: 401 Unauthorized.

\stanice5.domena.cz | FAILED! => {
    "failed": true,
    "msg": "ssl: 401 Unauthorized."

konfigurace inventory je následující:
root@debian-backup:~/ansible_test# cat hosts
[windows]
\stanice5.domena.cz

[windows:vars]
ansible_user=administrator
ansible_password=superheslo
ansible_ssh_port=5986
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
Nevíte někdo čím by to mohlo být?

ansible jsem instaloval na Debian Wheezy pomocí: pip install ansible
root@debian-backup:~/ansible_test# ansible --version
ansible 2.0.2.0
  config file = /root/ansible_test/ansible.cfg
  configured module search path = Default w/o overrides
ansible.cfg jsem neměnil a postupoval jsem pomocí návodu https://docs.ansible.com/ansible/intro_windows.html

(\stanice5.domena.cz jsem escapoval pomocí zpětného lomítka aby mi to vzal zdejší check)

Díky za každou odpověď.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.5.2016 21:08 majales | skóre: 29 | blog: Majales
Rozbalit Rozbalit vše Re: ansible windows winrm nefunguje
Odpovědět | | Sbalit | Link | Blokovat | Admin
Odpovím si sám, funguje to. Jen je potřeba nastavit aby winrm na windows stroji podporoval basic auth takto:
winrm set winrm/config/client/auth '@{Basic="true"}'
Auth
    Basic = true
    Digest = true
    Kerberos = true
    Negotiate = true
    Certificate = true
    CredSSP = false

winrm set winrm/config/service/auth '@{Basic="true"}'
Auth
    Basic = true
    Kerberos = true
    Negotiate = true
    Certificate = false
    CredSSP = false
    CbtHardeningLevel = Relaxed
To je vše. :-)

Pak je výsledek win_ping takovýto
 ansible windows -i hosts -m win_ping -v
Using /etc/ansible/ansible.cfg as config file
\stanice5.domena.cz | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.