Network Automation Basics - Edutek Dia 4
Network Automation Basics - Edutek Dia 4
Para automatización simple usando una línea de comando remota como lo es Telnet o SSH,
Administradores de red han usado distintos métodos y técnicas desde hace mucho tiempo.
Inicialmente scripts automatizan con valores de string que se trasladan a la CLI. Con la
evolución de Python. Netmiko un módulo para python ah emergido como una herramienta open
source mantenida en Github.com, Esta herramienta provee una interfaz similar a los scripts
basados en respuestas de String.
Aclaración: sshCli es una variable que está usando el método ConnectHandler de la librería
netmiko. Output también es una variable usando otro método llamado send_comand de la
librería netmiko.
Configurando una interfaz a través de un Script.
Ahora veremos cómo configurar una interfaz a través de un script. Los pasos son los
siguientes:
1) Crear una lista llamada config_command
2) Ingresar los valores de la lista en cadena de caracteres
3) Usar la variable output antes creada y re definirla
4) Dentro de output llamar la variable sshCli con el método send_config_set y dentro de los
paréntesis del método ingresar la variable que tiene los parámetros a configurar ->
config_command
Si deseamos ver la interfaz creada hacemos uso de output y utilizamos dentro de output el
método send_command + entre paréntesis “show ip interface brief”
API’s
Una API permite que una parte de software se pueda comunicar con otra. Podemos comparar
la analogía de un toma corriente a una API. Que haces para conectar tu Laptop al toma
corriente? (si no existiera el enchufe que conocemos hoy en dia?)
-Abrir la pared
-Pelar los Cables
-Dividir los cables
-Entender todos los cables en la pared.
Una API define como un programador escribe una pieza de código para poder comunicarse con
aplicaciones existentes o inclusive construir nuevas aplicaciones.
Web browsers usan HYPERTEXT TRANSFER PROTOCOL (HTTP) para poder obtener(GET)
una pagina web. Si la solicitud es exitosa (HTTP status code 200), El servidor Web responde al
GET request con un HYPERTEXT MARKUP LANGUAGE(HTML) codificado en la pagina web
como se ve en la imagen de arriba.
RESTful API usando HTTP
Representation state Transfer(REST) APIs usan HTTP para tener una interfaz con servicios
RESTful. El request pide por un formato json (JavaScript Object Notation(JSON) )
Para poder tener éxito construyendo un request API, Se debe seguir la documentación API
Puedes encontrar una variedad de esta información usando internet.
En esta sección crearemos una aplicación que muestre JSON data, Esto desde direcciones de
MAPQUEST API, Analizaremos la data y la manipularemos para tener un output para el end
user.
Primer paso: debemos ir al sitio developer crear una cuenta y obtener una llave/key, de la cual
debemos usar la consumer Key.
Segundo paso: Importamos librerías urllib.parse y requests, urllib nos brinda funciones para
analizar y manipular la data JSON. y requests nos brinda funciones para obtener JSO data de
una URL.
Tercer Paso: debemos crear las variables que nos ayudarán a construir una URL
Aca podemos ver como dentro de URL estamos concatenando valores anteriormente
declarados en el script.
Quinto paso: ahora ya estamos listos para poder crear el Request. Para eso creamos la
variable json_data esta variable va hacer uso del método GET del módulo requests y va
especificar JSON como el formato pedido.
Para saber si el GET request funcionó podemos hacer uso de la función print() y ver el output.
Ahora que vemos que el JSON está funcionando, podemos empezar a agregar más
funcionalidad a la aplicación.
Sexto Paso: eliminamos print(json_data) ya que no es necesario más. Ahora podemos usar la
función print() para mostrar la información obtenida por el método GET en la variable json_data.
Septimo paso: añadimos una condicional que analiza el status code del API request.
Challenge: Basado en lo que aprendimos hasta ahora mejora la aplicación y añade opciones
para tener user input y también agrega la opción quit con un condicional para terminar la
aplicación.
Challenge Resuelto