Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Wie verbinde ich Ansible unter Windows von Ubuntu?

ansible Zertifizierungsprüfungen
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Lassen Sie mich Ihnen schnell zeigen, wie Sie den Windows-Server von Ansible aus unter Ubuntu verbinden.

Um die folgenden Schritte ausführen zu können, müssen auf beiden Systemen Python 3.x und Ansible installiert sein. Sie können den folgenden Artikeln folgen, wenn Sie Hilfe benötigen.

Wie installiere und konfiguriere ich Ansible unter Ubuntu?

Wie installiere ich Ansible unter Windows?

Nachfolgend sind die Details der beiden von mir verwendeten Server aufgeführt:

  • Ansible Controller - 192.168.0.108
  • Windows Server - 192.168.0.102

Step 1: Create Ansible Windows User

Erstellen Sie einen neuen Benutzer für den Verbindungsaufbau von Ansible Windows.

  • Öffnen Sie die Computerverwaltung auf Ihrem Windows-System und gehen Sie zu Lokale Benutzer und Gruppen.
  • Klicken Sie mit der rechten Maustaste auf Benutzer und erstellen Sie einen neuen Benutzer.
  • Aktivieren Sie das Kontrollkästchen Passwort läuft nie ab und klicken Sie auf Erstellen.

Ansible Benutzer

  • Klicken Sie nun unter den verfügbaren Gruppen mit der rechten Maustaste auf die Gruppe Administratoren und dann auf Eigenschaften.
  • Klicken Sie auf Hinzufügen und geben Sie ansible in Objektnamen ein.
  • Klicken Sie auf die Option Namen überprüfen und dann auf OK.

Ansible Gruppen

Jetzt ist ein ansible Benutzer auf einem Windows-Computer bereit.

Step 2: Setup Libraries and WinRM

Gehen Sie zu Ihrem Ansible-Controller-Computer, aktualisieren Sie ihn und installieren Sie die unten genannten Bibliotheken.

geekflare@geekflare:~$ sudo apt-get update
geekflare@geekflare:~$ sudo apt-get install gcc python-dev
geekflare@geekflare:~$ sudo apt install python3-pip

WinRM steht für Windows Remote Management. Sie können damit Verwaltungsaufgaben auf Remote-Windows-Systemen ausführen. Wir werden installieren python3-winrm, ein Python-Client, mit dem eine Verbindung zum Windows-System hergestellt wird.

geekflare@geekflare:~$ sudo apt-get install python3-winrm
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
gyp libc-ares2 libhttp-parser2.8 libjs-async libjs-inherits libjs-is-typedarray libjs-node-uuid libuv1 libuv1-dev node-abbrev node-ajv
node-ansi node-ansi-color-table node-ansi-regex node-ansi-styles node-ansistyles node-aproba node-archy node-are-we-there-yet node-async

node-validate-npm-package-license node-wcwidth.js node-which node-which-module node-wide-align node-wrap-ansi node-wrappy node-y18n
node-yallist node-yargs node-yargs-parser nodejs nodejs-doc
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
python3-kerberos python3-ntlm-auth python3-requests-kerberos python3-requests-ntlm python3-xmltodict
The following NEW packages will be installed:
python3-kerberos python3-ntlm-auth python3-requests-kerberos python3-requests-ntlm python3-winrm python3-xmltodict
0 upgraded, 6 newly installed, 0 to remove and 231 not upgraded.
Need to get 84.8 kB of archives.
After this operation, 442 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-kerberos amd64 1.1.14-1build1 [16.8 kB]
Get:2 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-ntlm-auth all 1.1.0-1 [19.6 kB]
Get:3 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-requests-kerberos all 0.11.0-2 [10.1 kB]
Get:4 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-requests-ntlm all 1.1.0-1 [6,004 B]
Get:5 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-xmltodict all 0.11.0-2 [10.6 kB]
Get:6 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-winrm all 0.3.0-2 [21.7 kB]
Fetched 84.8 kB in 1s (70.3 kB/s)
Selecting previously unselected package python3-kerberos.
(Reading database ... 244430 files and directories currently installed.)
Preparing to unpack .../0-python3-kerberos_1.1.14-1build1_amd64.deb ...
Unpacking python3-kerberos (1.1.14-1build1) ...
Selecting previously unselected package python3-ntlm-auth.
Selecting previously unselected package python3-xmltodict.
Preparing to unpack .../4-python3-xmltodict_0.11.0-2_all.deb ...
Unpacking python3-xmltodict (0.11.0-2) ...
Selecting previously unselected package python3-winrm.
Preparing to unpack .../5-python3-winrm_0.3.0-2_all.deb ...
Unpacking python3-winrm (0.3.0-2) ...
Setting up python3-kerberos (1.1.14-1build1) ...
Setting up python3-winrm (0.3.0-2) ...

Step 3: Update the Ansible Inventory file

Jetzt bearbeite ich die Ansible-Hosts-Datei mit der IP-Adresse des Windows-Systems. Jetzt weiß Ansible also, welches Windows-System es verbinden muss.

geekflare@geekflare:~$ sudo gedit /etc/ansible/hosts

[win]
192.168.0.102

Step 4: Update the Ansible Group Variables

Erstellen Sie ein Verzeichnis zum Einfügen von Variablen, die eine Verbindung zum Windows-System herstellen müssen.

geekflare@geekflare:~$ mkdir /etc/ansible/group_vars
geekflare@geekflare:~$ sudo chmod -R 777 /etc/ansible/

Erstellen Sie eine Datei win.yaml Geben Sie die im ersten Schritt erstellten Benutzerdetails und einige weitere Variablen ein, die für die Verbindung mit dem Windows-System erforderlich sind.

geekflare@geekflare:~$ gedit /etc/ansible/group_vars/win.yaml
---

ansible_user: ansible

ansible_password: ansible

ansible_connection: winrm

ansible_winrm_server_cert_validation: ignore

ansible_winrm_transport: basic

ansible_winrm_port: 5985

ansible_python_interpreter: C:\Users\geekflare\AppData\Local\Programs\Python\Python37\python

Step 5: Configure Windows Servers to Manage

Öffnen Sie Ihre Windows Power Shell und aktualisieren Sie sie. Powershell 3.0 und .NET Framework 4.0 müssen auf dem Windows-Computer vorhanden sein.

PS C:\WINDOWS\system32> $url = "https://raw.githubusercontent.com/jborean93/ansible-windows/master/scripts/Upgrade-PowerShell.ps1"
PS C:\WINDOWS\system32> $file = "$env:temp\Upgrade-PowerShell.ps1"
PS C:\WINDOWS\system32> $username = "ansible"
PS C:\WINDOWS\system32> $password = "ansible"
PS C:\WINDOWS\system32> (New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
PS C:\WINDOWS\system32> Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
PS C:\WINDOWS\system32> &$file -Version 5.1 -Username $username -Password $password -Verbose

Um WinRM auf einem Windows-System mit ansible zu konfigurieren, wurde von ansible ein Remote-Konfigurationsskript bereitgestellt. Führen Sie das Skript in der PowerShell aus.

PS C:\WINDOWS\system32> $url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
PS C:\WINDOWS\system32> $file = "$env:temp\ConfigureRemotingForAnsible.ps1"
PS C:\WINDOWS\system32> (New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
PS C:\WINDOWS\system32> powershell.exe -ExecutionPolicy ByPass -File $file
PS C:\WINDOWS\system32> winrm enumerate winrm/config/Listener

Listener
Address = *
Transport = HTTP
Port = 5985
Hostname
Enabled = true
URLPrefix = wsman

CertificateThumbprint
ListeningOn = 127.0.0.1, 169.254.8.240, 169.254.36.9, 169.254.102.217, 169.254.215.170, 192.168.0.102, ::1, fe80::3131:c6d7:9ef5:8f0%7, fe80::51b7:9134:550d:d7aa%22, fe80::88f1:1229:e1dd:2409%16, fe80::99cf:5796:4f8e:f5c1%15, fe80::fd77:c19d:e0f2:66d9%9

Listener
Address = *
Transport = HTTPS
Port = 5986
Hostname = DESKTOP-2L8QMI6
Enabled = true
URLPrefix = wsman

CertificateThumbprint = C83B3FC8B274D0B650F0FD647DC7AC129BBE3FA0
ListeningOn = 127.0.0.1, 169.254.8.240, 169.254.36.9, 169.254.102.217, 169.254.215.170, 192.168.0.102, ::1, fe80::3131:c6d7:9ef5:8f0%7, fe80::51b7:9134:550d:d7aa%22, fe80::88f1:1229:e1dd:2409%16, fe80::99cf:5796:4f8e:f5c1%15, fe80::fd77:c19d:e0f2:66d9%9

Stellen Sie winrm so ein, dass HTTP-Verkehr zugelassen wird.

PS C:\WINDOWS\system32> winrm set winrm/config/service '@{AllowUnencrypted="true"}'
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 = true
Auth
Basic = true
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false

CbtHardeningLevel = Relaxed
DefaultPorts
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *

EnableCompatibilityHttpListener = false

EnableCompatibilityHttpsListener = false

CertificateThumbprint
AllowRemoteAccess = true

Stellen Sie die Authentifizierung in wirm auf basic ein.

PS C:\WINDOWS\system32> winrm set winrm/config/service/auth '@{Basic="true"}'
Auth
Basic = true
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false
CbtHardeningLevel = Relaxed

Step 6: Test Connectivity to the Windows Server

Jetzt sind alle Schritte an der Maschine erledigt. Gehen Sie zum Ansible Controller-Computer und pingen Sie den Windows Server-Computer mit win_ping Ansible Modul.

geekflare@geekflare:~$ ansible win -m win_ping
192.168.0.102 | SUCCESS => {

"changed": false,
"ping": "pong"
}

Die Erfolgsmeldung zeigt, dass die Verbindung hergestellt wurde. Jetzt kann das Windows-System von Ansible aus unter Ubuntu remote verwaltet werden.

Danke an unsere Sponsoren
Weitere großartige Lektüre zu DevOps
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder