jonjozwiak.bluecat-ipam-rest
Nazwa roli
Ta rola współpracuje z interfejsem API REST Bluecat Address Manager (Proteus) w celu uzyskania i zwolnienia adresów IP oraz ich powiązanych nazw DNS. Wykonuje szybkie wdrożenie zamiast pełnego wdrożenia. Przyjmuje nazwę hosta jako wejście i ustawia następujące zmienne podczas uzyskiwania adresu IP, które mogą być używane w następnych zadaniach:
- ipAddress
- ipNetmask
- ipGateway
Ta rola była testowana z Bluecat Address Manager 8.1.0.
Wymagania
Ta rola używa filtra 'ipaddr', aby zwrócić maskę podsieci dla podanego CIDR. Wymaga to modułu python netaddr (z RPM python-netaddr / python3-netaddr). Alternatywnie można usunąć sekcję ipNetmask z roli.
Zmienne roli
Zmienne mogą być ustawione ogólnie w górnej sekcji playbooka lub w sekcji include_role, jak pokazano w przykładzie playbooka. Zmienne w górnej sekcji zastępują te w sekcji zadań.
Poświadczenia Bluecat Address Manager użytkownika z dostępem do API
bluecat_username: "apiuser" bluecat_password: "apipassword" bluecat_url: "https://bcn_proteus.example.com"
Szczegóły konfiguracji i widoku z Bluecat
bluecat_configuration_name: "Przykład" bluecat_dns_view: "wewnętrzny"
Właściwości do przekazania do wezwania API Bluecat w celu uzyskania adresu IP (można zdefiniować tylko jedną)
address_properties: "offset=192.168.30.15" # Rozpocznij od tego adresu address_properties: "skip=192.168.30.1-192.168.30.15" # Pomiń te adresy address_properties: "|excludeDHCPRange=true" # Pomiń zakres DHCP address_properties: "skip=10.10.10.128-10.10.11.200,10.10.11.210|offset=10.10.10.100|excludeDHCPRange=true|" # Wszystko w jednym
Wybierz nie, jeśli używasz certyfikatów samopodpisanych. tak, jeśli certyfikaty są ważne
validate_certs: "nie"
Określ, czy uzyskać, czy zwolnić nazwę IP/DNS. Wartość domyślna to obecny. Opcje to:
Utwórz lub uzyskaj IP/DNS: obecny, uzyskaj
Szukaj IP po nazwie hosta: uzyskaj, szukaj
Zwolnij IP/DNS: nieobecny, zwolnij
state: "obecny"
Nazwa hosta do uzyskania lub zwolnienia
target_hostname: "host.example.com"
CIDR sieci, aby uzyskać adres IP
bluecat_network_cidr: "192.168.30.0/24"
Zależności
Przykładowy playbook
UWAGA - zmienne na górze zastępują zmienne include_role poniżej. Jeśli ustawiasz zmienną w include_role w zadaniach, nie deklaruj jej w zmiennych na górze.
- name: Wdrożenie i wycofanie adresów IP
hosts: localhost
vars:
bluecat_username: "apiuser"
bluecat_password: "apipassword"
bluecat_url: "https://bcn_proteus.example.com"
bluecat_configuration_name: "Przykład"
bluecat_network_cidr: "192.168.30.0/24" # CIDR sieci, aby uzyskać adres IP
bluecat_dns_view: "wewnętrzny"
address_properties: "offset=192.168.30.15" # Rozpocznij od tego adresu
address_properties: "skip=192.168.30.1-192.168.30.15" # Pomiń te adresy
address_properties: "|excludeDHCPRange=true" # Pomiń zakres DHCP
validate_certs: "nie" # Wybierz nie, jeśli używasz certyfikatów samopodpisanych.. gather_facts: false tasks:name: Uzyskaj adres IP include_role: name: jonjozwiak.bluecat-ipam-rest vars: target_hostname: "ansibletest.example.com"
name: Wykonaj coś z zwróconym adresem IP debug: var=ipAddress
name: Uzyskaj adres IP include_role: name: jonjozwiak.bluecat-ipam-rest vars: target_hostname: "ansibletest2.example.com"
name: Wykonaj coś z zwróconym adresem IP debug: msg="Adres IP: <{{ipAddress}}>. Maska: <{{ipNetmask}}>. Brama: <{{ipGateway}}>."
name: Zwolnij adres IP include_role: name: jonjozwiak.bluecat-ipam-rest vars: target_hostname: "ansibletest.example.com" state: nieobecny
name: Zwolnij adres IP include_role: name: jonjozwiak.bluecat-ipam-rest vars: target_hostname: "ansibletest2.example.com" state: nieobecny
Licencja
GPLv3
Informacje o autorze
Jon Jozwiak
ansible-galaxy install jonjozwiak.bluecat-ipam-rest