phpipam_api

Плейбуки для взаимодействия с API phpipam

С работающей установкой phpipam вы можете включить API и использовать эти взаимодействия внутри плейбуков. Вам нужно будет настроить идентификатор приложения и создать пользователя, который будет получать доступ к этому API, чтобы собрать токен.

Настройка API для использования в Ansible

В интерфейсе вам нужно будет перейти в раздел API в разделе администрирования. Здесь вы можете настроить идентификатор приложения для API. Далее вам нужно будет перейти в раздел Пользователи, чтобы создать пользователя API.

Взаимодействие с API

Чтобы найти подсети и заполнить конкретные переменные, вам нужно будет поработать с API с помощью Postman или curl.

Использование curl для получения токена: curl -k https://ipam.example.com/api/phpipamappid/user/ -X POST -u <username>:<password>

Получение токена из возвращаемого JSON-вывода: curl -k https://ipam.example.com/api/phpipamappid/sections/ --header "token: .J1e9ipFZkPE6EvIRAqEf9hp" -X GET

Как только у вас будет ID секций, вы сможете использовать его для получения подсетей внутри этой секции. curl -k https://ipam.example.com/api/phpipamappid/sections/{ID}/subnets --header "token: .J1e9ipFZkPE6EvIRAqEf9hp" -X GET

Это выведет все подсети в этой секции, и вам нужно будет получить ID из возвращенных объектов:

"id": <number>,
...

Здесь заполняется переменная subnet_id:.

Пример плейбука для резервирования IP

Плейбук main.yml является примером использования модуля URI для выполнения вызова API, регистрации вывода для заполнения переменных, выполнения вызовов для регистрации IP и обновления базы данных phpipam.

Чтобы сгенерировать зашифрованное значение для заполнения пароля хранилища для переменной api_pass, вам нужно будет сделать это с помощью ansible-vault. https://docs.ansible.com/ansible/2.4/vault.html

Как только все значения в файле group_vars/all будут установлены и соответствовать вашей среде, только тогда плейбук выполнится успешно. Выполнение вызова к API получит токен, который затем сохраняется в переменной и используется по всему плейбуку.

Документация phpipam https://phpipam.net/api/api_documentation/

О проекте

Get available ip from phpipam and reserve returned ip address

Установить
ansible-galaxy install brgalloway/phpipam-api
Лицензия
gpl-2.0
Загрузки
305
Владелец