brgalloway.phpipam_api
Libros de jugadas para interactuar con la API de phpipam
Con una instalación de phpipam en funcionamiento, puedes habilitar la API y utilizar estas interacciones dentro de los libros de jugadas. Necesitarás configurar el ID de la aplicación y crear un usuario que accederá a esta API para obtener un token.
Configurando la API para su uso en Ansible
Dentro de la interfaz gráfica, deberás navegar a la sección de API bajo administración. Aquí podrás configurar el ID de la aplicación para la API. A continuación, necesitarás navegar a la sección de Usuarios para crear tu usuario de API.
Interactuando con la API
Para encontrar las subredes y poblar variables específicas, necesitarás explorar la API con Postman o curl.
usando curl para devolver un token:
curl -k https://ipam.ejemplo.com/api/phpipamappid/user/ -X POST -u <usuario>:<contraseña>
obteniendo el token de la salida json devuelta:
curl -k https://ipam.ejemplo.com/api/phpipamappid/sections/ --header "token: .J1e9ipFZkPE6EvIRAqEf9hp" -X GET
Una vez que tengas el ID de las secciones, esto puede ser utilizado para obtener las subredes dentro de esta sección.
curl -k https://ipam.ejemplo.com/api/phpipamappid/sections/{ID}/subnets --header "token: .J1e9ipFZkPE6EvIRAqEf9hp" -X GET
Esto listará todas las subredes en esta sección, y querrás obtener el ID de los objetos devueltos:
"id": <número>,
...
Aquí es donde se poblará la variable subnet_id:
.
Ejemplo de libro de jugadas para reservar IP
El libro de jugadas main.yml es un ejemplo de cómo usar el módulo URI para realizar una llamada a la API, registrar la salida para poblar variables, realizar llamadas para registrar una IP y actualizar la base de datos de phpipam.
Para generar el valor encriptado que poblará la contraseña del vault para la variable api_pass, necesitarás generarlo con ansible-vault. https://docs.ansible.com/ansible/2.4/vault.html
Una vez que todos los valores en el archivo group_vars/all estén configurados para que coincidan con tu entorno, solo entonces el libro de jugadas tendrá éxito. Realizar la llamada a la API descargará el token el cual se almacenará en una variable y se usará a lo largo del libro de jugadas.
documentación de phpipam https://phpipam.net/api/api_documentation/
ansible-galaxy install brgalloway.phpipam_api