maxlareo.cumuluslinux

CumulusLinux

Ansible Galaxy

Un rôle Ansible pour gérer Cumulus Linux via le module NCLU.

Exigences

Cumulus Linux version 3.2+ uniquement, les versions précédentes ne prennent pas en charge NCLU.

Variables du rôle

Variable Description Type Valeur par défaut
cl_license Licence de CumulusLinux Chaîne ''
cl_hostname Nom d'hôte de l'appareil Chaîne cumulus
cl_time_zone Fuseau horaire Chaîne Etc/UTC
cl_time_ntp_servers Liste des serveurs NTP, possibilité d'ajouter l'option iburst Tableau []
cl_time_ntp_source Interface source NTP Chaîne eth0
cl_locales Activer les locales depuis locale-gen Tableau []
cl_dns_nameserver Serveur de noms DNS à partir de deux sous-tableaux ipv4 et ipv6 Hash {}
cl_commands Commandes atomiques Ansible nclu utilisant recursive pour autoriser les actions ajoutées/supprimées Hash {}
cl_snmp Paramètres du serveur snmp à partir de net add snmp-server utilisant recursive Hash {}
cl_syslog Paramètres syslog à partir de deux sous-tableaux de hash ipv4 et ipv6, chaque entrée a besoin d'une ip + un port et éventuellement un proto(udp/tcp) Hash {}
cl_interface Paramètres de l'interface à partir de net add interface utilisant recursive Hash {}
cl_bond Paramètres de lien à partir de net add bond utilisant recursive Hash {}
cl_vlan Paramètres vlan à partir de net add vlan utilisant recursive Hash {}

Dépendances

Aucune

Recherche personnalisée

Récursive

Pour gérer la configuration de l'interface de Cumulus Linux avec Ansible, j'ai codé un plugin de recherche pour pouvoir construire les variables à partir d'un hash et il lira récursivement le hash imbriqué afin de transformer le hash en une liste de chaînes.

Chaque profondeur dans les variables sera ajoutée à la commande nclu comme cela :

var:

cl_interface:
  swp1:
    ip:
      address: 192.168.1.1/24
    link:
      speed: 100
  swp2:
    bridge:
      trunk:
        vlans:
          - 1-5
          - 10,12

résultats:

swp1 ip address 192.168.1.1/24
swp2 bridge trunk vlans 1-5
swp2 bridge trunk vlans 10,12

De cette façon, je trouve la structure des variables plus lisible pour des configurations complexes.

Exemple de 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:
              adress:
                - 10.10.10.0/24

Licence

MIT

Informations sur l'auteur

Maxime Lareo

Commentaires, rapports de bogues, demandes, ...

Sont bienvenus !

À propos du projet

Manage CumulusLinux via NCLU

Installer
ansible-galaxy install maxlareo.cumuluslinux
Licence
mit
Téléchargements
119
Propriétaire