brgalloway.phpipam_api

Playbooks pour interagir avec l'API phpipam

Avec une installation phpipam fonctionnelle, vous pouvez activer l'API et utiliser ces interactions dans les playbooks. Vous devrez configurer l'ID de l'application et créer un utilisateur qui accédera à cette API pour obtenir un jeton.

Configuration de l'API pour utilisation dans Ansible

Dans l'interface graphique, vous devrez naviguer vers la section API dans le menu d'administration. Ici, vous pouvez configurer l'ID de l'application pour l'API. Ensuite, vous devrez aller dans la section Utilisateurs pour créer votre utilisateur API.

Interagir avec l'API

Pour trouver les sous-réseaux et peupler des variables spécifiques, vous devrez explorer l'API avec Postman ou curl.

Utiliser curl pour obtenir un jeton : curl -k https://ipam.example.com/api/phpipamappid/user/ -X POST -u <nom_utilisateur>:<mot_de_passe>

Pour récupérer le jeton à partir de la sortie JSON retournée : curl -k https://ipam.example.com/api/phpipamappid/sections/ --header "token: .J1e9ipFZkPE6EvIRAqEf9hp" -X GET

Une fois que vous avez l'ID des sections, cela peut être utilisé pour obtenir les sous-réseaux dans cette section. curl -k https://ipam.example.com/api/phpipamappid/sections/{ID}/subnets --header "token: .J1e9ipFZkPE6EvIRAqEf9hp" -X GET

Cela va lister tous les sous-réseaux dans cette section, et vous voudrez récupérer l'ID des objets retournés

"id": <nombre>,
...

C'est ici que la variable subnet_id: est peuplée.

Exemple de playbook pour réserver une IP

Le playbook main.yml est un exemple utilisant le module URI pour faire un appel API, enregistrer la sortie pour peupler des variables, faire des appels pour enregistrer une IP et mettre à jour la base de données de phpipam.

Pour générer la valeur cryptée à utiliser pour le mot de passe du coffre pour la variable api_pass, vous devrez le générer avec ansible-vault. https://docs.ansible.com/ansible/2.4/vault.html

Une fois que toutes les valeurs dans le fichier group_vars/all sont définies pour correspondre à votre environnement, seulement à ce moment-là, le playbook réussira. Faire l'appel à l'API tirera le jeton qui sera ensuite stocké dans une variable et utilisé tout au long du playbook.

Documentation de phpipam https://phpipam.net/api/api_documentation/

À propos du projet

Get available ip from phpipam and reserve returned ip address

Installer
ansible-galaxy install brgalloway.phpipam_api
Licence
gpl-2.0
Téléchargements
317
Propriétaire