jonjozwiak.bluecat-ipam-rest
ロール名
このロールは、Bluecat Address Manager (Proteus) の REST API を使用して、IP アドレスとそれに関連する DNS 名を取得し、解放します。フルデプロイではなく、クイックデプロイを行います。ターゲットホスト名を入力として受け取り、以下の変数を設定します。これらは後続のプレイで使用できます:
ipAddress
ipNetmask
ipGateway
このロールは、Bluecat Address Manager 8.1.0 でテストされました。
要件
このロールでは、'ipaddr' フィルターを使用して、指定された CIDR のサブネットマスクを返します。これには python netaddr モジュール(python-netaddr / python3-netaddr RPM)が必要です。代わりに、ロールから ipNetmask セクションを削除することもできます。
ロール変数
変数は、プレイブックの上部セクションや、プレイブックの例に示された include_role セクションで設定できます。上部セクションの変数は、タスクセクションの変数を上書きします。
# API アクセスを持つユーザーの Bluecat Address Manager の認証情報
bluecat_username: "apiuser"
bluecat_password: "apipassword"
bluecat_url: "https://bcn_proteus.example.com"
# Bluecat からの構成およびビューの詳細
bluecat_configuration_name: "Example"
bluecat_dns_view: "internal"
# bluecat API の IP 取得コールに渡すプロパティ(1つのみ定義できます)
address_properties: "offset=192.168.30.15" # このアドレスから開始
address_properties: "skip=192.168.30.1-192.168.30.15" # これらのアドレスをスキップ
address_properties: "|excludeDHCPRange=true" # DHCP 範囲をスキップ
address_properties: "skip=10.10.10.128-10.10.11.200,10.10.11.210|offset=10.10.10.100|excludeDHCPRange=true|" # 一括
# 自己署名証明書を使用している場合は "no" を選択。証明書が有効な場合は "yes"
validate_certs: "no"
# IP/DNS 名を取得するか解放するかを決定します。デフォルトは "present" です。オプションは以下です:
# IP/DNS を作成または取得:present, acquire
# ホスト名で IP を検索:get, lookup
# IP/DNS を解放:absent, release
state: "present"
# 取得または解放するホスト名
target_hostname: "host.example.com"
# IP を取得するネットワークの CIDR
bluecat_network_cidr: "192.168.30.0/24"
依存関係
例プレイブック
注 - 上部の変数は、下部の include_role 変数を上書きします。タスクの include_role で変数を設定する場合は、上部の変数では述べないでください。
- name: IP アドレスをデプロイおよび解放する
hosts: localhost
vars:
bluecat_username: "apiuser"
bluecat_password: "apipassword"
bluecat_url: "https://bcn_proteus.example.com"
bluecat_configuration_name: "Example"
bluecat_network_cidr: "192.168.30.0/24" # IP を取得するネットワークの CIDR
bluecat_dns_view: "internal"
address_properties: "offset=192.168.30.15" # このアドレスから開始
#address_properties: "skip=192.168.30.1-192.168.30.15" # これらのアドレスをスキップ
#address_properties: "|excludeDHCPRange=true" # DHCP 範囲をスキップ
validate_certs: "no" # 自己署名証明書を使用している場合は "no" を選択..
gather_facts: false
tasks:
- name: IP アドレスを取得する
include_role:
name: jonjozwiak.bluecat-ipam-rest
vars:
target_hostname: "ansibletest.example.com"
- name: 取得した IP アドレスを使用して何かをする
debug: var=ipAddress
- name: IP アドレスを取得する
include_role:
name: jonjozwiak.bluecat-ipam-rest
vars:
target_hostname: "ansibletest2.example.com"
- name: 取得した IP アドレスを使用して何かをする
debug: msg="IP アドレス: <{{ipAddress}}>. ネットマスク: <{{ipNetmask}}>. ゲートウェイ: <{{ipGateway}}>."
- name: IP アドレスを解放する
include_role:
name: jonjozwiak.bluecat-ipam-rest
vars:
target_hostname: "ansibletest.example.com"
state: absent
- name: IP アドレスを解放する
include_role:
name: jonjozwiak.bluecat-ipam-rest
vars:
target_hostname: "ansibletest2.example.com"
state: absent
ライセンス
GPLv3
著者情報
Jon Jozwiak