maxlareo.cumuluslinux
CumulusLinux
Eine Ansible-Rolle zur Verwaltung von Cumulus Linux über das NCLU-Modul.
Voraussetzungen
Nur Cumulus Linux Version 3.2+ unterstützt NCLU, frühere Versionen unterstützen es nicht.
Rollenvariablen
Variable | Beschreibung | Typ | Standard |
---|---|---|---|
cl_license |
CumulusLinux-Lizenz | String | '' |
cl_hostname |
Hostname des Geräts | String | cumulus |
cl_time_zone |
Zeitzone | String | Etc/UTC |
cl_time_ntp_servers |
Liste der NTP-Server, Möglichkeit zur Hinzufügung der iburst-Option | Array | [] |
cl_time_ntp_source |
NTP-Quellen-Schnittstelle | String | eth0 |
cl_locales |
Aktivierung der Locale über locale-gen | Array | [] |
cl_dns_nameserver |
DNS-Nameserver aus zwei Unterarrays, ipv4 und ipv6 | Hash | {} |
cl_commands |
Ansible nclu atomare Kommandos mit rekursivem Lookup, ermöglichen del/add Aktionen, zuerst ausgeführt | Hash | {} |
cl_snmp |
snmp-server Einstellungen von net add snmp-server mit rekursivem Lookup |
Hash | {} |
cl_syslog |
syslog Einstellungen aus zwei Unterarrays von Hash ipv4 und ipv6, jeder Eintrag benötigt eine IP + einen Port und optional ein Proto (udp/tcp) | Hash | {} |
cl_interface |
Schnittstelleneinstellungen von net add interface mit rekursivem Lookup |
Hash | {} |
cl_bond |
Bond-Einstellungen von net add bond mit rekursivem Lookup |
Hash | {} |
cl_vlan |
VLAN-Einstellungen von net add vlan mit rekursivem Lookup |
Hash | {} |
Abhängigkeiten
Keine
Benutzerdefinierter Lookup
Rekursiv
Um die Konfiguration der Cumulus Linux Schnittstellen mit Ansible zu verwalten, habe ich ein Lookup-Plugin programmiert, das es ermöglicht, die Variablen aus einem Hash zu erstellen und rekursiv den geschachtelten Hash zu lesen, um den Hash in eine Liste von Strings umzuwandeln.
Jede Ebene der Variablen wird zum nclu-Befehl hinzugefügt, so:
var:
cl_interface:
swp1:
ip:
address: 192.168.1.1/24
link:
speed: 100
swp2:
bridge:
trunk:
vlans:
- 1-5
- 10,12
Ergebnisse:
swp1 ip address 192.168.1.1/24
swp2 bridge trunk vlans 1-5
swp2 bridge trunk vlans 10,12
Auf diese Weise finde ich die Struktur der Variablen für komplexe Einstellungen lesbarer.
Beispiel-Playbook
- hosts: leaf01
roles:
- cumuluslinux
vars:
cl_license: [email protected]|thequickbrownfoxjumpsoverthelazydog312
cl_hostname: leaf01
cl_time_zone: Europe/Paris
cl_time_ntp_servers:
- 0.cumulusnetworks.pool.ntp.org iburst
- 1.cumulusnetworks.pool.ntp.org
- 2.cumulusnetworks.pool.ntp.org
- 3.cumulusnetworks.pool.ntp.org
cl_time_ntp_source: eth1
cl_locales:
- en_US.UTF-8 UTF-8
- fr_FR.UTF-8 UTF-8
cl_dns_nameserver:
ipv4:
- 9.9.9.9
- 1.1.1.1
ipv6:
- 2620:fe::fe
cl_interface:
swp1:
ip:
address: 192.168.1.1/24
link:
speed: 100
swp2:
bridge:
trunk:
vlans:
- 1-5
- 10,12
cl_snmp:
listening-address:
ip:
- 192.168.1.10
- 192.168.1.20
readonly-community:
my_rocommunity:
access: any
cl_commands:
add:
vrf: mgmt
del:
snmp-server: all
cl_syslog:
ipv4:
- ip: 192.168.1.10
port: 5000
proto: tcp
- ip: 192.168.1.20
port: 6000
ipv6:
- ip: 2001:db8::1
port: 5000
cl_bond:
uplink:
bond:
slaves:
- swp1
- swp2
cl_vlan:
100:
ip:
address:
- 10.10.10.0/24
Lizenz
MIT
Autoreninformationen
Feedback, Fehlerberichte, Anfragen, ...
Sind willkommen!
Installieren
ansible-galaxy install maxlareo.cumuluslinux
Lizenz
mit
Downloads
119
Besitzer