brgalloway.phpipam_api

与phpipam API交互的剧本

有一个工作正常的phpipam安装后,您可以启用API,并在剧本中使用这些交互。 您需要配置应用ID,并创建一个将访问此API的用户,以便获取令牌。

在Ansible中设置API以供使用

在图形界面中,您需要导航到管理下的API部分。 在这里,您可以为API配置应用ID。 接下来,您需要导航到用户部分,以创建您的API用户。

与API交互

要查找子网并填充特定变量,您需要使用Postman或curl来查询API。

使用curl返回令牌: curl -k https://ipam.example.com/api/phpipamappid/user/ -X POST -u <用户名>:<密码>

从返回的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": <数字>,
...

这是填充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
下载
317
拥有者