maxlareo.cumuluslinux
CumulusLinux
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
Commentaires, rapports de bogues, demandes, ...
Sont bienvenus !
Installer
ansible-galaxy install maxlareo.cumuluslinux
Licence
mit
Téléchargements
119
Propriétaire