maxlareo.cumuluslinux

CumulusLinux

Ansible Galaxy

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

Maxime Lareo

Feedback, Fehlerberichte, Anfragen, ...

Sind willkommen!

Über das Projekt

Manage CumulusLinux via NCLU

Installieren
ansible-galaxy install maxlareo.cumuluslinux
GitHub Repository
Lizenz
mit
Downloads
119
Besitzer