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