2065 438+09-05-30 Configuración de generación por lotes Python+Jinjia2+YAML
Mi ejemplo aquí es configurar algunos interruptores. La configuración básica es diferente: dirección de loopback (IPV4 e IPV6), nombre del dispositivo y número de red ISIS. En cuanto a otras direcciones de Internet, como la situación es más complicada, es mejor hacerlo manualmente.
Entonces hay una idea.
1. Genere un archivo yaml con una estructura similar a la siguiente:
Aquí primero explicamos que primero se planifica el segmento de red V4 de la dirección loopback, la dirección V6 y la dirección loopback. Número de red del "Estado Islámico" Se genera de acuerdo con ciertas reglas basadas en la dirección V4. Este archivo yaml se puede generar según el algoritmo leyendo el archivo de Excel y se escribirán otros artículos.
2. Lea el archivo yaml y genere una lista de diccionario. La información de cada diccionario contiene las variables requeridas por cada dispositivo.
3. Escribe una función para iterar sobre los diccionarios de la lista. Cada vez que se lee un diccionario, las variables se extraen y se colocan en un diccionario temporal, se representa la plantilla jinja2 y se genera un archivo de configuración diferente para cada diccionario. Este diccionario temporal se borra y las variables se reescriben cada vez que se lee.
También hay algunos detalles, como el nombre de los documentos y las funciones de tiempo, que requieren llamar a algunos módulos. Para resumir los puntos de conocimiento involucrados, incluyen: módulo yaml, módulo jinja2, módulo os, función de fecha, bucle condicional y operación de E/S.
Secuencia de comandos de Python adicional:
El archivo de plantilla se coloca en el directorio 'templates'; de lo contrario, informará que no se puede encontrar el archivo.
Si eres nuevo en Python, pide consejo a expertos si hay algo que no sea razonable.