jonjozwiak.bluecat-ipam-rest

Nom du Rôle

Ce rôle utilise l'API REST du Bluecat Address Manager (Proteus) pour acquérir et libérer des adresses IP ainsi que leurs noms DNS associés. Il effectue un déploiement rapide plutôt qu'un déploiement complet. Il prend un nom d'hôte cible en entrée et définit les variables suivantes lors de l'acquisition d'une adresse IP, qui peuvent être utilisées dans les actions suivantes :

ipAddress
ipNetmask
ipGateway

Ce rôle a été testé avec Bluecat Address Manager 8.1.0

Exigences

Ce rôle utilise le filtre 'ipaddr' pour renvoyer le masque de sous-réseau pour le CIDR donné. Cela nécessite le module python netaddr (provenant des RPM python-netaddr / python3-netaddr). Alternativement, vous pouvez supprimer la section ipNetmask du rôle.

Variables du Rôle

Les variables peuvent être définies dans la section supérieure d'un playbook ou dans la section include_role comme indiqué dans l'exemple de playbook. Les variables dans la section supérieure remplacent celles de la section des tâches.

# Identifiants de l'utilisateur avec accès API pour Bluecat 
bluecat_username: "apiuser"
bluecat_password: "apipassword"
bluecat_url: "https://bcn_proteus.example.com"

# Détails de configuration et de vue depuis Bluecat
bluecat_configuration_name: "Exemple"
bluecat_dns_view: "interne"

# Propriétés à transmettre à l'appel API Bluecat pour acquérir une IP (une seule peut être définie)
address_properties: "offset=192.168.30.15"          # Commencer à partir de cette adresse
address_properties: "skip=192.168.30.1-192.168.30.15"        # Ignorer ces adresses
address_properties: "|excludeDHCPRange=true"        # Ignorer la plage DHCP
address_properties: "skip=10.10.10.128-10.10.11.200,10.10.11.210|offset=10.10.10.100|excludeDHCPRange=true|" # Tout en un

# Choisir non si vous utilisez des certificats auto-signés. Oui si les certificats sont valides
validate_certs: "non"

# Déterminer s'il faut acquérir ou libérer un nom IP/DNS. La valeur par défaut est présent. Les options sont :
#    Créer ou acquérir IP/DNS :  présent, acquérir 
#    Rechercher IP par nom d'hôte : 	get, lookup
#    Libérer IP/DNS :		absent, libérer
state: "présent"

# Nom d'hôte à acquérir ou libérer 
target_hostname: "host.example.com"

# Le CIDR du réseau pour acquérir une IP
bluecat_network_cidr: "192.168.30.0/24"

Dépendances

Exemple de Playbook

REMARQUE : les variables en haut remplacent celles de la section include_role ci-dessous. Si vous définissez une variable dans l'include_role dans les tâches, ne la mentionnez pas dans les variables en haut.

- name: Déployer et retirer les adresses IP
  hosts: localhost
  vars:
    bluecat_username: "apiuser"
    bluecat_password: "apipassword"
    bluecat_url: "https://bcn_proteus.example.com"
    bluecat_configuration_name: "Exemple"
    bluecat_network_cidr: "192.168.30.0/24"     # Le CIDR du réseau pour acquérir une IP
    bluecat_dns_view: "interne"
    address_properties: "offset=192.168.30.15"          # Commencer à partir de cette adresse
    #address_properties: "skip=192.168.30.1-192.168.30.15"        # Ignorer ces adresses
    #address_properties: "|excludeDHCPRange=true"        # Ignorer la plage DHCP
    validate_certs: "non"        # Choisir non si vous utilisez des certificats auto-signés.. 
  gather_facts: false
  tasks:
    - name: Obtenir l'adresse IP 
      include_role: 
        name: jonjozwiak.bluecat-ipam-rest 
      vars: 
        target_hostname: "ansibletest.example.com"

    - name: Faire quelque chose avec l'adresse IP renvoyée 
      debug: var=ipAddress

    - name: Obtenir l'adresse IP
      include_role:
        name: jonjozwiak.bluecat-ipam-rest
      vars:
        target_hostname: "ansibletest2.example.com"

    - name: Faire quelque chose avec l'adresse IP renvoyée 
      debug: msg="Adresse IP : <{{ipAddress}}>.  Masque de sous-réseau : <{{ipNetmask}}>. Passerelle : <{{ipGateway}}>."

    - name: Libérer l'adresse IP 
      include_role:
        name: jonjozwiak.bluecat-ipam-rest
      vars:
        target_hostname: "ansibletest.example.com"
        state: absent

    - name: Libérer l'adresse IP 
      include_role:
        name: jonjozwiak.bluecat-ipam-rest
      vars:
        target_hostname: "ansibletest2.example.com"
        state: absent

Licence

GPLv3

Informations sur l'Auteur

Jon Jozwiak

À propos du projet

Bluecat IPAM role using the REST API

Installer
ansible-galaxy install jonjozwiak.bluecat-ipam-rest
Licence
gpl-3.0
Téléchargements
20.7k
Propriétaire