brgalloway.phpipam_api
phpipam APIとの対話のためのプレイブック
動作するphpipamをインストールしたら、APIを有効にし、これらの対話をプレイブック内で使用できます。 APIにアクセスするために、アプリIDを設定し、ユーザーを作成してトークンを取得する必要があります。
AnsibleでのAPI使用の設定
GUI内で、管理の下にあるAPIセクションに移動する必要があります。 ここでAPIのアプリIDを設定できます。 次に、APIユーザーを作成するためにユーザーセクションに移動する必要があります。
APIとの対話
サブネットを見つけ、特定の変数を設定するには、Postmanやcurlを使ってAPIを確認する必要があります。
トークンを取得するための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/