maxlareo.cumuluslinux
CumulusLinux
Un rol de Ansible para gestionar Cumulus Linux a través del módulo NCLU.
Requisitos
Solo se admite la versión 3.2+ de Cumulus Linux, las versiones anteriores no soportan NCLU.
Variables del Rol
Variable | Descripción | Tipo | Predeterminado |
---|---|---|---|
cl_license |
Licencia de CumulusLinux | Cadena | '' |
cl_hostname |
Nombre del dispositivo | Cadena | cumulus |
cl_time_zone |
Husos horarios | Cadena | Etc/UTC |
cl_time_ntp_servers |
Lista de servidores NTP, posibilidad de agregar opción iburst | Array | [] |
cl_time_ntp_source |
Interfaz de origen NTP | Cadena | eth0 |
cl_locales |
Habilitar locaciones desde locale-gen | Array | [] |
cl_dns_nameserver |
Servidor DNS dividido en dos subarreglos ipv4 e ipv6 | Hash | {} |
cl_commands |
Comandos atómicos de nclu de Ansible usando recursivo, permite acciones de añadir/borrar, ejecutados primero | Hash | {} |
cl_snmp |
Configuraciones de snmp-server desde net add snmp-server usando recursivo |
Hash | {} |
cl_syslog |
Configuraciones de syslog de dos subarreglos de hash ipv4 e ipv6, cada entrada necesita una ip + un puerto y opcionalmente un proto (udp/tcp) | Hash | {} |
cl_interface |
Configuraciones de interfaz desde net add interface usando recursivo |
Hash | {} |
cl_bond |
Configuraciones de bond desde net add bond usando recursivo |
Hash | {} |
cl_vlan |
Configuraciones de vlan desde net add vlan usando recursivo |
Hash | {} |
Dependencias
Ninguna
Búsqueda Personalizada
Recursivo
Para gestionar la configuración de las interfaces de Cumulus Linux con Ansible, creé un plugin de búsqueda que puede construir las variables a partir de un hash y que leerá de forma recursiva el hash anidado para transformarlo en una lista de cadenas.
Cada profundidad de las variables se añadirá al comando nclu de la siguiente manera:
var:
cl_interface:
swp1:
ip:
address: 192.168.1.1/24
link:
speed: 100
swp2:
bridge:
trunk:
vlans:
- 1-5
- 10,12
resultados:
swp1 ip address 192.168.1.1/24
swp2 bridge trunk vlans 1-5
swp2 bridge trunk vlans 10,12
De esta manera, encuentro que la estructura de las variables es más legible para configuraciones complejas.
Ejemplo de Playbook
- hosts: leaf01
roles:
- cumuluslinux
vars:
cl_license: user@company.com|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
Licencia
MIT
Información del Autor
Comentarios, informes de errores, solicitudes, ...
¡Son bienvenidos!
Instalar
ansible-galaxy install maxlareo.cumuluslinux
Licencia
mit
Descargas
119
Propietario