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

プロジェクトについて

Bluecat IPAM role using the REST API

インストール
ansible-galaxy install jonjozwiak.bluecat-ipam-rest
ライセンス
gpl-3.0
ダウンロード
20.7k
所有者