Lese-Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.

Wie wird im Ansible Automation Controller eine neue Inventory Source hinzugefügt?

In diesem Überblick beschreibe ich am Beispiel der Proxmox inventory source, wie eine eigene Inventory Source im Ansible Automation Controller hinzugefügt werden kann.

Die folgenden Schritte wurden mit der Ansible Automation Platform 2.4 getestet. Die einzelnen Schritte sollten in gleicher Weise auch in Ansible AWX ausgeführt werden können.

Um diesem Text folgen zu können, werden Kenntnisse im Umgang mit Ansible und Git auf der Kommandozeile vorausgesetzt.

Der Text verweist, wo möglich, auf bestehende Dokumentation. Es handelt sich bei diesem Text nicht um ein klassisches Tutorial. Er dient mir als Gedächtnisstütze und mag euch eine Anregung sein, bzw. im besten Fall die Wissenslücken schließen, die sich mit der Dokumentation allein nicht schließen lassen.

Ausgangssituation

Abschnitt 18.4.5.1. Inventory sources im Automation Controller User Guide führt die in der Ansible Automation Platform (AAP) unterstützten Inventory Sources auf. Möchte man nun bspw. Proxmox Virtual Environment (PVE), Microsoft Active Directory oder Cisco DNA Center als Quelle für sein Inventar benutzen, wird man auf den ersten Blick nicht fündig.

Für das Beispiel in diesem Text werden Hosts aus der Bestandsliste eines PVE als Inventory Source hinzugefügt. Die dabei verwendete Vorgehensweise kann auch für andere Inventory Plugins verwendet werden. Die Entwicklung von Inventory Plugins ist jedoch nicht Gegenstand dieses Textes. Hierzu wird auf die Dokumentation unter „Developing dynamic inventory“ verwiesen.

Mein Kollege Steffen Scheib hat mir geholfen, das Proxmox-Plugin zu konfigurieren, wofür ich ihm an dieser Stelle nochmal ganz herzlich danke. Es liegt auf meiner Arbeitsstation als Ansible Project in folgender Verzeichnisstruktur vor:

]$ tree proxmox_inventory/
proxmox_inventory/
├── collections
│   └── requirements.yml
├── inventory
│   └── inventory.proxmox.yml
└── vault_password_file

3 directories, 3 files

Mit Ausnahme der Datei vault_password_file wurden alle Dateien und Verzeichnisse in Git aufgenommen. Ich verwende einen einfachen Git-Server in meiner Laborumgebung, auf welchen ich meine lokalen Repositorys pushe. Der Automation Controller synchronisiert das Projekt aus dem Git-Repo, um es als Inventory Source verfügbar zu machen.

Die Vorgehensweise im Überblick

  1. Ansible Credential für Source Control erstellen
  2. Ein Ansible Projekt hinzufügen
  3. Einen Custom Credential Type erstellen
  4. Ein Ansible Inventory hinzufügen

Ansible Credential für Source Control erstellen

Das Proxmox Inventory Plugin befindet sich in einem Git-Repository, auf welches mit SSH-Key-Authentifizierung zugegriffen werden kann. Damit auch der Automation Controller auf dieses Repository zugreifen kann, wird ein Credential vom Typ Source Control erstellt.

Beipsiel für einen Source Control Credential Typ im Ansible Automation Controller

Der SSH-Private-Key wurde von meinem Host hochgeladen und verschlüsselt im Automation Controller gespeichert. Der Key lässt sich in der GUI nicht wieder sichtbar machen, lediglich ersetzen.

Ein Ansible Projekt hinzufügen

Der Dokumentation folgend, wird ein Projekt hinzugefügt:

Beispiel einer ausgefüllten Maske im Automation Controller, zum Hinzufügen eines Projekts.

Wenn alles passt, wird das Projekt nach dem Speichern erfolgreich synchronisiert:

Dieses Projekt wird in einem späteren Schritt zur Erstellung des Inventory benötigt.

Einen Custom Credential Type erstellen

Bevor ich auf die Erstellung selbst eingehe, möchte ich kurz beschreiben, warum dieser Schritt notwendig ist.

Folgender Codeblock zeigt meine Datei inventory.proxmox.yml welche einige mit Ansible Vault verschlüsselte Werte enthält:

]$ cat inventory/inventory.proxmox.yml 
---
plugin: 'community.general.proxmox'
url: 'https://pve.example.com'
user: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          30623661316338386633623162303036346562346238386162633263636164636338393532613565
          3332616265353962326139363533313261623739643765640a623032613034613139653162356266
          34646464323233313964663939643631313539353736313364333433643136306632633065633664
          3234346635396563350a656334353632643830353534386636306365656261356436613662623163
          31663535363264356537336531393731633164613733316537383433653334643433
token_id: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          62356662336534646661353666356263363734666231643932393430336639363032303266636432
          3762343235633335613663393838343532326230353130380a616161313830373265306137346562
          61613662333764393565316362623838633332376366373161646237363163663039613863393439
          3165616664626633390a396465343430373837343662373634653634643138613131633034306432
          62623438366166353765366339323263393833396133653866343833663335663766
token_secret: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          66386338643463373837666164396332306261366634396630306430663937613963346164636433
          3362396566343932393234353439383932316436396437380a336365393038373566383534623136
          30353332383464356664393666383664636536666531663463623232353136353636363366653431
          3234616531623537630a393530643437376363653438643036636436316636616265316361623661
          35313832613063633662363531346164306638373538393164373663633335333863646430663232
          6339343164633865636239356538326438333937366134613738

validate_certs: false

# fail if a variable is not resolvable
strict: true

# facts are required to retrieve proxmox_vmtype
want_facts: true

# only allow qemu VMs
filters:
  - "proxmox_vmtype == 'qemu'"

Auf der Kommandozeile meines Hosts kann ich den Inhalt des Dynamic Inventory wie folgt anzeigen lassen:

ansible-inventory -i inventory/inventory.proxmox.yml --list --vault-password-file vault_password_file

Die Datei vault_password_file befindet sich jedoch nicht im Git, da sie das Passwort im Klartext enthält. Aus diesem Grund möchte ich die Datei auch nicht auf dem Automation Controller ablegen. Irgendwie müssen auf dem Automation Controller jedoch Credentials hinterlegt werden, um die Ansible Vault encrypted_strings zu entschlüsseln. Die Lösung steckt in diesem Kommentar auf Github. Im Automation Controller User Guide gibt es dazu Chapter 11. Custom credential types.

Fertig sieht das dann so aus:

Quelle: https://github.com/ansible/awx/issues/4089#issuecomment-1632066592

Das Schlüssel-Wert-Paar secret: true stellt sicher, dass das Passwort verschlüsselt gespeichert wird. Es kann danach im Automation Controller nicht mehr im Klartext angezeigt werden. Nachdem der neue Credential Typ erstellt ist, kann dieser instanziiert werden:

Beispiel des neuen Custom Credential Typs ‚encrypted_vault_password‘

Das Vault Passwort wird in das entsprechende Formularfeld kopiert. Es ist standardmäßig nicht sichtbar und wird wie oben bereits erwähnt, verschlüsselt gespeichert. Mit diesem Credential verfügt der Automation Controller nun über die notwendigen Informationen, um das Proxmox Inventory auszulesen.

Ein Ansible Inventory hinzufügen

Zuerst wird ein Inventory nach Dokumentation erstellt. Anschließend wird diesem eine Inventory Source hinzugefügt.

Die Formularfelder sind dabei wie folgt zu befüllen:

  • Name: Kann frei vergeben werden
  • Source: Sourced from a Project
  • Credential: Hier wird das im vorangegangenen Schritt erstellte Credential ausgewählt
  • Project: Hier wird das in obigen Abschnitt erstellte Projekt ausgewählt
  • Inventory file: Kann in diesem Fall auf `/ (project root)` gesetzt werden
Eine Inventory Source mit Proxmox als Beispiel

Nach dem Speichern wird die Inventory Source durch Klick auf ‚Sync‘ synchronisiert:

In dieser Ansicht wurde die Inventory Source bereits erfolgreich synchronisiert

Und wir haben 17 Hosts in unserem Inventory:

Damit endet dieser kurze Überblick auch schon. Ich wünsche euch viel Freude bei der Inventarpflege.

Proxmox Backup Server 3.0 verbessert Tape-Nutzung

Proxmox Server Solutions hat die Veröffentlichung von Proxmox Backup Server 3.0 bekannt gegeben. Die neue Hauptversion basiert auf Debian 12 „Bookworm“, verwendet den neueren Linux-Kernel 6.2 und enthält ZFS 2.1.12.

Proxmox Backup Server ermöglicht laut Anbieter das Sichern und Wiederherstellen von VMs, Containern und physischen Hosts. Die Software unterstütze inkrementelle, vollständig deduplizierte Backups, was den Bedarf an Netzwerkbandbreite und Speicherplatz reduziere und die Infrastrukturkosten senken soll. Die Proxmox Backup-Lösung ist nahtlos in Proxmox Virtual Environment integriert.

Zu den Neuerungen zählen eine verbesserte Tape-Nutzung. Zur besseren Übersicht werden die Tape-Backup/Restore-Aufgaben jetzt in der „Task-Übersicht“ im GUI-Dashboard angezeigt. Beim Wiederherstellen von Snapshots zeigt die Proxmox Backup-Lösung jetzt eine Liste der benötigten Tapes an. Fehle ein Tape im Wechsler für die Wiederherstellung, werde der Auftrag nicht mehr abgebrochen, sondern warte nun darauf, dass das richtige Band eingelegt werde, teilt das Unternehmen mit.

Mit dem Parameter “transfer-last” können jetzt Synchronisierungsaufträge auf Client-Seite flexibler erstellt werden. Anstatt alle Backups zu übertragen, lässt sich die Anzahl der aktuellsten Backups definieren, die synchronisiert werden sollen.

Zum Schutz vor Brute-Force-Angriffen werden Benutzerkonten mit wiederholt fehlgeschlagenen Anmeldeversuchen gesperrt, bei denen die Authentifizierung mit dem zweiten Faktor fehlschlägt.

Proxmox Backup Server ist unter der freien Softwarelizenz GNU AGPLv3 veröffentlicht. Die ISO-Datei kann unter beim Anbieter heruntergeladen und mithilfe des Proxmox-Installationsassistenten installiert werden. Für den produktiven Einsatz ist dedizierte Hardware empfohlen.

Für Unternehmen bietet Proxmox Server Solutions GmbH zusätzlich einen Enterprise-Support auf Abonnementbasis an.

Der Beitrag Proxmox Backup Server 3.0 verbessert Tape-Nutzung erschien zuerst auf Linux-Magazin.

Proxmox VE 8.0 mit aktuellen Paketen

Proxmox Server Solutions hat sein Proxmox Virtual Environment in Version 8.0 veröffentlicht. Die neue Version basiert auf Debian 12 („Bookworm“).

Proxmox VE 8.0 verwendet laut Anbieter zudem standardmäßig den neueren Linux-Kernel 6.2 womit die neuen Funktionen der aktuellsten Hardware besser unterstützt seien. Die in Proxmox VE 8.0 integrierten Open-Source-Technologien seien ebenfalls aktualisiert worden. QEMU 8.0.2, LXC 5.0.2, ZFS 2.1.12, und Ceph Quincy 17.2.6 sind Beispiele dafür.

Das Ceph Enterprise-Repository namens Ceph Quincy sei nun vollständig in Proxmox VE integriert heißt es zu den weiteren Neuerungen. Es ermögliche die Verwaltung von Ceph-Storage direkt von jedem Cluster-Knoten aus. So lasse sich mit der Proxmox-Plattform eine hyperkonvergente Infrastruktur einrichten und verwalten.

Dass Benutzer und Gruppen in LDAP-basierten Domänen (LDAP und Microsoft Active Directory) sich nun automatisch in regelmäßigen Abständen synchronisieren lassen, vereinfache die Verwaltung und helfe dabei Fehler zu vermeiden, die bei einer manuellen Synchronisierung der Authentifizierungsinformationen auftreten könnten, heißt es weiter.

Proxmox Virtual Environment steht unter der Softwarelizenz GNU Affero GPL v3 bereit. Das ISO-Image enthalte den kompletten Funktionsumfang. Proxmox Virtual Environment 8.0 stehe ab sofort zum Download bereit. Für Unternehmen bietet Proxmox Server Solutions GmbH zusätzlich Enterprise-Support an.

Der Beitrag Proxmox VE 8.0 mit aktuellen Paketen erschien zuerst auf Linux-Magazin.

Proxmox VE 7.4 aktualisiert Unterbau

Mit der Distribution Proxmox VE lässt sich schnell eine Umgebung für virtuelle Maschinen und Container aufsetzen. Die neue Version 7.4 offeriert ein neues dunkles Theme. Darüber hinaus liegen die Kernkomponenten QEMU, LXC und ZFS in frischen Versionen bei.

Als Basis dient weiterhin Debian 11.6 („Bullseye“), im Hintergrund arbeitet jedoch wahlweise der Kernel 5.15 oder 6.2. Mit an Bord sind QEMU 7.2, LXC 5.0.2 und ZFS 2.1.9. Beim verteilten Dateisystem Ceph kann man sich zwischen der Version Quincy 17.2.5 und Pacific 16.2.11 entscheiden. GUI und API bieten zudem detaillierte Ceph OSD-Informationen an.

Task Logs darf man ab sofort als Textdateien herunterladen. Der Resource Tree lässt sich zudem nach Name oder VMID sortieren. Der HA-Manager hat ein CRM-Kommando spendiert bekommen, über das man einen aktiven Knoten manuell und ohne Neustart in den Maintenance-Modus versetzen kann. CRS re-balanciert virtuelle Maschinen und Container automatisch beim Start. Sämtliche Neuerungen listen detailliert die offiziellen Release Notes auf.

Der Beitrag Proxmox VE 7.4 aktualisiert Unterbau erschien zuerst auf Linux-Magazin.

❌