Leálo en otros idiomas: English, 日本語, Español.
Demostrar el uso de la funcionalidad encuesta o survey del controlador de Automatización. Las encuestas (o surveys) configuran las variables extra para un playbook de forma similar a como el ‘Prompt for Extra Variables’ lo hace, pero de una manera amigable de pregunta y respuesta para el usuario. Las encuestas (o surveys) también proveen de validación de entrada de usuario.
Abre la web UI y Haz click en el enlace Templates
del menú de la izquierda.
Haz click en el botón azul Add
y seleccion Add job template para crear una nueva plantilla de trabajo o job template. (Asegúrate de seleccionar Job Template
y no Workflow Template
)
Parameter | Value |
---|---|
Name | Network-Banner |
Job Type | Run |
Inventory | Workshop Inventory |
Project | Workshop Project |
Execution Environment | Default execution environment |
Playbook | playbooks/network_banner.yml |
Credential | Workshop Credential |
Baja y haz click en el botón azul Save
.
Observa el Playbook de Ansible network_banner.yml
:
---
- name: set router banners
hosts: routers
gather_facts: no
tasks:
- name: load banner onto network device
vars:
- network_banner: "{{ net_banner | default(None) }}"
- banner_type: "{{ net_type | default('login') }}"
include_role:
name: "../roles/banner"
Nota:
También puedes consultar el Playbook de Ansible aquí: https://github.com/network-automation/toolkit
El rol banner tiene un fichero main.yml
muy simple:
- name: configure banner
include_tasks: "{{ ansible_network_os }}.yml"
La variable ansible_network_os
se usa para parametrizar el SO de red y crear un playbook agnóstico al fabricante.
Si has creado la red con un dispositivo junos, este playbook bucará un fichero de tareas llamado junos.yml
. Si estás usando un dispositivo IOS-XE, este playbook buscará un fichero de tareas llamado ios.yml
. Este fichero contendrá las tareas específicas de la plataforma:
---
- name: add the junos banner
junos_banner:
text: "{{ network_banner }}"
banner: "{{ banner_type }}"
Nota:
Por favor, observa que hay distintos ficheros de tareas creados para ios, nxos, eos y junos en este playbook.
Observa también que se pasan dos variables al fichero de tareas.
network_banner
: Esta variable toma el valor usando el de la variable net_banner
.
banner_type
: Esta variable toma el valor usando el de la variable net_type
.
En este paso crearás una encuesta o “survey” de usuario de entrada para recoger la entrada del usuario y asignar los valores de las variables net_banner
y banner_type
.
Haz click en la pestaña Survey dentro de la template de trabajo Network-Banner
Haz click en el botón azul Add.
Rellena los siguientes campos:
Parameter | Value |
---|---|
Question | Please enter the banner text |
Description | Please type into the text field the desired banner |
Answer Variable Name | net_banner |
Answer type | Textarea |
Required | Checkmark |
Por ejemplo:
Haz click en el botón verde Add
para añadir otra pregunta.
A continuación, crearemos un indicador de encuesta para recopilar el banner_type
. Los valores pueden ser “motd” o “login” siendo por defecto “login” para seguir el playbook anterior.
Parameter | Value |
---|---|
Question | Please enter the banner type |
Description | Please choose an option |
Answer Variable Name | net_type |
Answer type | Multiple Choice(single select) |
Multiple Choice Options | login motd |
default answer | login |
Required | Checkmark |
Por ejemplo:
Haz click en Save
Haz click en el interruptor para activar la encuesta, dejándolo en On
Haz click Back to Templates
Haz click en el icono del cohete para ejecutar la plantilla de trabajo.
El trabajo pedirá inmediatamente al usuario que indique el mensaje de bienvenida (banner) y el tipo.
Escribe el mensaje de bienvenida que deseas para los enrutadores.
Elige entre login
y motd
.
Haz click en el botón next
para ver cómo la encuesta ha transformado esta entrada de variables extra en el Playbook de Ansible. Por ejemplo, el mensaje de bienvenida existente es “This router was configured by Ansible”.
Haz click en el botón azul Launch para lanzar el trabajo.
Espera a que la ejecución del trabajo concluya. Por favor, índicale al instructor si hay algún problema.
Entra en uno de los enrutadores para observar la configuración de la pantalla de bienvenida:
[student@ansible]$ ssh rtr1
La pantalla de bienvenida aparecerá justo al entra. Como por ejemplo:
[student@ansible-1 ~]$ ssh rtr1
Warning: Permanently added 'rtr1,3.237.253.154' (RSA) to the list of known hosts.
This router was configured by Ansible
Verifícalo en los otros enrutadores
Has probado existosamente lo siguiente:
network_banner
y banner_type
.¡Felicidades, has completado el ejercicio de laboratorio 7!
Ejercicio Anterior | Próximo ejercicio
Haz click aquí para volver al taller Ansible Network Automation