jonjozwiak.bluecat-ipam-rest

Nombre del Rol

Este rol trabaja con la API REST de Bluecat Address Manager (Proteus) para adquirir y liberar direcciones IP y sus nombres de DNS asociados. Realiza un despliegue rápido en lugar de un despliegue completo. Toma un nombre de host objetivo como entrada y establece las siguientes variables al adquirir una IP, que se pueden usar en tareas posteriores:

  • ipAddress
  • ipNetmask
  • ipGateway

Este rol fue probado con Bluecat Address Manager 8.1.0.

Requisitos

Este rol usa el filtro 'ipaddr' para devolver la máscara de subred para el CIDR dado. Esto requiere el módulo netaddr de Python (de python-netaddr / python3-netaddr RPM). Alternativamente, puedes eliminar la sección ipNetmask del rol.

Variables del Rol

Las variables se pueden establecer en la parte superior de un libro de jugadas o en la sección include_role, como se muestra en el ejemplo del libro de jugadas. Las variables en la parte superior anulan las de la sección de tareas.

  • Credenciales de Bluecat Address Manager de un usuario con acceso a la API

  • Detalles de configuración y vista de Bluecat

    • bluecat_configuration_name: "Ejemplo"
    • bluecat_dns_view: "interno"
  • Propiedades para pasar a la llamada de adquisición de IP de la API de Bluecat (solo se puede definir una)

    • address_properties: "offset=192.168.30.15" # Comenzar desde esta dirección
    • address_properties: "skip=192.168.30.1-192.168.30.15" # Saltar estas direcciones
    • address_properties: "|excludeDHCPRange=true" # Saltar rango DHCP
    • address_properties: "skip=10.10.10.128-10.10.11.200,10.10.11.210|offset=10.10.10.100|excludeDHCPRange=true|" # Todo en uno
  • Elegir no si se utilizan certificados autofirmados. Sí si los certificados son válidos

    • validate_certs: "no"
  • Determinar si adquirir o liberar un nombre IP/DNS. El valor predeterminado es presente. Las opciones son:

    • Crear o adquirir IP/DNS: present, acquire
    • Buscar IP por nombre de host: get, lookup
    • Liberar IP/DNS: absent, release
    • state: "present"
  • Nombre del host a adquirir o liberar

    • target_hostname: "host.example.com"
  • El CIDR de la red para adquirir una IP

    • bluecat_network_cidr: "192.168.30.0/24"

Dependencias

Ejemplo de Libro de Jugadas

NOTA: las variables en la parte superior anulan las variables de include_role a continuación. Si estás estableciendo una variable en el include_role en tareas, no la declares en las variables en la parte superior.

- name: Desplegar y renovar direcciones IP
  hosts: localhost
  vars:
    bluecat_username: "apiuser"
    bluecat_password: "apipassword"
    bluecat_url: "https://bcn_proteus.example.com"
    bluecat_configuration_name: "Ejemplo"
    bluecat_network_cidr: "192.168.30.0/24"     # El CIDR de la red para adquirir una IP
    bluecat_dns_view: "interno"
    address_properties: "offset=192.168.30.15"          # Comenzar desde esta dirección
    #address_properties: "skip=192.168.30.1-192.168.30.15"        # Saltar estas direcciones
    #address_properties: "|excludeDHCPRange=true"        # Saltar rango DHCP
    validate_certs: "no"        # Elegir no si se utilizan certificados autofirmados
  gather_facts: false
  tasks:
    - name: Obtener dirección IP 
      include_role: 
        name: jonjozwiak.bluecat-ipam-rest 
      vars: 
        target_hostname: "ansibletest.example.com"

    - name: Hacer algo con la dirección IP devuelta 
      debug: var=ipAddress

    - name: Obtener dirección IP
      include_role:
        name: jonjozwiak.bluecat-ipam-rest
      vars:
        target_hostname: "ansibletest2.example.com"

    - name: Hacer algo con la dirección IP devuelta 
      debug: msg="Dirección IP: <{{ipAddress}}>.  Máscara de red: <{{ipNetmask}}>. Puerta de enlace: <{{ipGateway}}>."

    - name: Liberar dirección IP 
      include_role:
        name: jonjozwiak.bluecat-ipam-rest
      vars:
        target_hostname: "ansibletest.example.com"
        state: absent

    - name: Liberar dirección IP 
      include_role:
        name: jonjozwiak.bluecat-ipam-rest
      vars:
        target_hostname: "ansibletest2.example.com"
        state: absent

Licencia

GPLv3

Información del Autor

Jon Jozwiak

Acerca del proyecto

Bluecat IPAM role using the REST API

Instalar
ansible-galaxy install jonjozwiak.bluecat-ipam-rest
Licencia
gpl-3.0
Descargas
20.7k
Propietario