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
- bluecat_username: "apiuser"
 - bluecat_password: "apipassword"
 - bluecat_url: "https://bcn_proteus.example.com"
 
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
ansible-galaxy install jonjozwiak.bluecat-ipam-rest