brgalloway.phpipam_api

Playbooks für die Interaktion mit der phpipam API

Mit einer funktionierenden phpipam-Installation kannst du die API aktivieren und diese Interaktionen in Playbooks verwenden. Du musst die App-ID konfigurieren und einen Benutzer erstellen, der auf diese API zugreift, um ein Token zu erhalten.

Einrichtung der API für die Nutzung in Ansible

Im GUI musst du zum API-Bereich unter Verwaltung navigieren. Hier kannst du die App-ID für die API konfigurieren. Als nächstes musst du zum Benutzerbereich navigieren, um deinen API-Benutzer zu erstellen.

Interaktion mit der API

Um die Subnetze zu finden und spezifische Variablen zu befüllen, musst du mit Postman oder Curl die API erkunden.

Verwendung von Curl, um ein Token zurückzugeben: curl -k https://ipam.example.com/api/phpipamappid/user/ -X POST -u <benutzername>:<passwort>

Das Token aus der zurückgegebenen JSON-Ausgabe abrufen: curl -k https://ipam.example.com/api/phpipamappid/sections/ --header "token: .J1e9ipFZkPE6EvIRAqEf9hp" -X GET

Sobald du die ID der Abschnitte hast, kannst du sie verwenden, um die Subnetze in diesem Abschnitt abzurufen. curl -k https://ipam.example.com/api/phpipamappid/sections/{ID}/subnets --header "token: .J1e9ipFZkPE6EvIRAqEf9hp" -X GET

Dies listet alle Subnetze in diesem Abschnitt auf, und du solltest die ID aus den zurückgegebenen Objekten entnehmen:

"id": <nummer>,
...

Hier wird die Variable subnet_id: befüllt.

Beispiel-Playbook zur Reservierung von IPs

Das main.yml-Playbook ist ein Beispiel für die Verwendung des URI-Moduls, um einen API-Aufruf zu machen, die Ausgabe zu registrieren, um Variablen zu befüllen, IPs zu registrieren und die Datenbank von phpipam zu aktualisieren.

Um den verschlüsselten Wert für das Vault-Passwort der Variable api_pass zu generieren, musst du dies mit ansible-vault erstellen. https://docs.ansible.com/ansible/2.4/vault.html

Sobald alle Werte in der Datei group_vars/all auf deine Umgebung übereinstimmen, wird das Playbook erfolgreich sein. Der Aufruf der API holt das Token, das dann in einer Variable gespeichert und im gesamten Playbook verwendet wird.

phpipam-Dokumentation https://phpipam.net/api/api_documentation/

Über das Projekt

Get available ip from phpipam and reserve returned ip address

Installieren
ansible-galaxy install brgalloway.phpipam_api
Lizenz
gpl-2.0
Downloads
317
Besitzer