Ansible: Zugriff von Ubuntu 20.04 WSL auf Window 11 Host funktioniert nicht

Magic1416

Lieutenant
Registriert
Dez. 2003
Beiträge
530
Hallo,

ich möchte Ansible Tasks aus einem in einer WSL 2 gehosteten Ubuntu 20.04 Linux gegen den Windows 11 Host ausführen.
Bei einem win_ping bekomme ich als Fehlermeldung folgendes:
Code:
UNREACHABLE! => {
    "changed": false,
    "msg": "ntlm: the specified credentials were rejected by the server",
    "unreachable": true
}

Ich habe folgendes durchgeführt:
  • Ansible installiert und gegen das Linux System erfolgreich getestet
  • Ein Inventory File angelegt
Code:
alexhost ansible_host=172.22.176.1 ansible_user=ansibleuser

[windows]
alexhost
[windows:vars]
ansible_become_method=runas
ansible_connection=winrm
ansible_port=5986
ansible_winrm_server_cert_validation=ignore
ansible_winrm_transport=ntlm
ansible_winrm_scheme=https

  • Den lokalen User ansibleuser im Windows als Administrator angelegt und mit einem Passwort versehen. Das Kennwort ist fix und läuft nicht ab.
  • WinRM für https mit einem SelfSigned Certifcate konfiguriert. WinRM kann von einem anderen Windows System aus benutzt werden
Code:
Config
    MaxEnvelopeSizekb = 500
    MaxTimeoutms = 60000
    MaxBatchItems = 32000
    MaxProviderRequests = 4294967295
    Client
        NetworkDelayms = 5000
        URLPrefix = wsman
        AllowUnencrypted = false
        Auth
            Basic = true
            Digest = true
            Kerberos = true
            Negotiate = true
            Certificate = true
            CredSSP = false
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        TrustedHosts
    Service
        RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
        MaxConcurrentOperations = 4294967295
        MaxConcurrentOperationsPerUser = 1500
        EnumerationTimeoutms = 240000
        MaxConnections = 300
        MaxPacketRetrievalTimeSeconds = 120
        AllowUnencrypted = false
        Auth
            Basic = false
            Kerberos = true
            Negotiate = true
            Certificate = false
            CredSSP = false
            CbtHardeningLevel = Relaxed
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        IPv4Filter = *
        IPv6Filter = *
        EnableCompatibilityHttpListener = false
        EnableCompatibilityHttpsListener = false
        CertificateThumbprint
        AllowRemoteAccess = true
    Winrs
        AllowRemoteShellAccess = true
        IdleTimeout = 7200000
        MaxConcurrentUsers = 2147483647
        MaxShellRunTime = 2147483647
        MaxProcessesPerShell = 2147483647
        MaxMemoryPerShellMB = 2147483647
        MaxShellsPerUser = 2147483647

Code:
Listener
    Address = *
    Transport = HTTP
    Port = 5985
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 127.0.0.1, 169.254.121.179, 172.16.20.158, 172.22.176.1

Listener
    Address = *
    Transport = HTTPS
    Port = 5986
    Hostname = DESKTOP-A0VCIT2
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint = FA5160B0EFAF18AA3D4EF3063F1120612CAB8CA7
    ListeningOn = 127.0.0.1, 169.254.121.179, 172.16.20.158, 172.22.176.1

- Die lokale Windows Firewall um folgende Regel erweitert
Code:
New-NetFirewallRule-DisplayName "WSL"-Direction Inbound  -InterfaceAlias "vEthernet (WSL)"-Action Allow

- Zum Schluß führe ich den win_ping aus, wo ich nach dem Passwort des Users gefragt werde
Code:
ansible -m win_ping -i inventory.ini -k windows


Wo muss ich noch was konfigurieren, damit das funktioniert.
Vielen Dank
Magic
 
Ohne mich mit Ansible und WSL im Detail asuzukennen, sieht das alles eigentlich schlüssig aus.

Schritte, die ich machen würde:
Windows Eventlogs prüfen. Auswendig weiß ich nicht, ob WinRM ein egenes Eventlog hat oder ob es im Systemlog mit drin ist. Auch nen Blick in das Security-Log werfen.

Wenn die Eventlogs nichts zeigen, Logging der Windows Firewall aktivieren (um zu sehen, ob deine Pakete überhaupt ankommen).

Nachtrag: kannst du denn aus dem WSL überhaupt was vom Hostsystem erreichen? Simples ping oder mal eine WinRM-Verbindung von da testen: https://devblogs.microsoft.com/scripting/using-winrm-on-linux/
 
kartoffelpü schrieb:
Nachtrag: kannst du denn aus dem WSL überhaupt was vom Hostsystem erreichen? Simples ping oder mal eine WinRM-Verbindung von da testen: https://devblogs.microsoft.com/scripting/using-winrm-on-linux/
Das kann ich schonmal mit ja beantworten:
Code:
64 bytes from 172.22.176.1: icmp_seq=28 ttl=128 time=0.199 ms
64 bytes from 172.22.176.1: icmp_seq=29 ttl=128 time=0.218 ms
^C
--- 172.22.176.1 ping statistics ---
29 packets transmitted, 29 received, 0% packet loss, time 29099ms
rtt min/avg/max/mdev = 0.152/0.199/0.263/0.027 ms
alex@DESKTOP-A0VCIT2:/mnt/c/Users/alexa/Documents/ansible$ telnet
telnet> ^C
alex@DESKTOP-A0VCIT2:/mnt/c/Users/alexa/Documents/ansible$ telnet 172.22.176.1 5986
Trying 172.22.176.1...
Connected to 172.22.176.1.
Escape character is '^]'.
 
  • Gefällt mir
Reaktionen: kartoffelpü
Dann dürfte es ja nur noch ein Authentifizierungsfehler an WinRM sein oder irgendwas in der Ansible-Config.
 
Zurück
Oben