bluecat-ipam-rest

Название роли

Эта роль работает с API REST Bluecat Address Manager (Proteus) для получения и освобождения IP-адресов и связанных с ними DNS-имен. Она выполняет быстрое развертывание, а не полное. На вход подается целевое имя хоста, и устанавливаются следующие переменные при получении IP-адреса, которые могут быть использованы в последующих задачах:

ipAddress
ipNetmask
ipGateway

Эта роль была протестирована с Bluecat Address Manager версии 8.1.0.

Требования

Эта роль использует фильтр 'ipaddr' для получения маски подсети для заданного CIDR. Это требует наличия модуля python netaddr (из RPM python-netaddr / python3-netaddr). В качестве альтернативы вы можете удалить раздел ipNetmask из роли.

Переменные роли

Переменные можно задать в общем в верхней части плейбука или в секции include_role, как показано в примере плейбука. Переменные в верхней части перекрывают те, что в секции задач.

# Учетные данные пользователя Bluecat Address Manager с доступом к API
bluecat_username: "apiuser"
bluecat_password: "apipassword"
bluecat_url: "https://bcn_proteus.example.com"

# Конфигурация и детали представления из Bluecat
bluecat_configuration_name: "Example"
bluecat_dns_view: "internal"

# Свойства, которые передаются в вызов API Bluecat для получения IP (можно задать только одно)
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|" # Все в одном

# Выберите "нет", если используются самоподписанные сертификаты. "да", если сертификаты действительны
validate_certs: "no"

# Определите, нужно ли получить или освободить имя IP/DNS. По умолчанию установлено "present". Возможные варианты:
#    Создать или получить IP/DNS:  present, acquire 
#    Найти IP по имени хоста:  get, lookup
#    Освободить IP/DNS:		absent, release
state: "present"

# Имя хоста для получения или освобождения 
target_hostname: "host.example.com"

# CIDR сети для получения IP
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"     # CIDR сети для получения IP
    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"        # Выберите "нет", если используются самоподписанные сертификаты. 
  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
Загрузки
17024
Владелец