Ejercicio 1 - Explorando el entorno de laboratorio

Leálo en otros idiomas: uk English, japan 日本語, Español Español.

Índice

Objetivo

Explorar y comprender el entorno de laboratorio.

Estos primeros ejercicios de laboratorio consistirán en explorar las utilidades de línea de comando de Ansible Automation Platform. Esto incluye:

Si necesitaás más informacion sobre los nuevos componentes de Ansible Automation Platform, añáde esta página https://red.ht/AAP-20 a tus marcadores.

Join our community forum!

Before you get started, please join us on https://forum.ansible.com/. This will allow you to get Ansible help after the workshops concludes.

Diagrama

Red Hat Ansible Automation

Guía

Paso 1 - Connectar vía VS Code

Se recomienda el uso de Visual Studio Code para completar los ejercicios. Visual Studio Code provee:
  • Un explorador de ficheros
  • Un editor de texto con sintaxis resaltada
  • Una terminal embebida
El acceso directo por SSH está disponible como backup, o si Visual Studio Code no fuera suficiente para el estudiante. Aquí hay un pequeño vídeo de YouTube (en inglés) en caso de necesitar más claridad: Ansible Workshops - Accessing your workbench environment.

Paso 2 - Usando la Terminal

Navega hasta el directorio network-workshop en la terminal del nodo de control de Ansible.

[student@ansible-1 ~]$ cd ~/network-workshop/
[student@ansible-1 network-workshop]$ pwd
/home/student/network-workshop
[student@ansible-1 network-workshop]$

Paso 3 - Examinando los Entornos de Ejecución

Ejecuta el comando ansible-navigator con el argumento images para ver los entornos de ejecución configurados en el nodo de control:

$ ansible-navigator images

ansible-navigator images

Nota

La salida mostrada puede diferir de la anteriomente mostrada

Este comando da información sobre todos los Entornos de Ejecución actualmente instalados (EE para abreviar). Investiga un EE pulsando el número correspondiente. Por ejemplo, pulsando 0 con el ejemplo anterior, abrirá el EE network-ee:

ee main menu

Seleccionar 2 para Ansible version and collections mostrará todas las Colecciones de Ansible (Ansible Collections) instaladas para ese EE en particular, y la versión de ansible-core:

ee info

Paso 4 - Examinando la configuración de ansible-navigator

Ejecuta tanto Visual Studio Code como el comando cat para ver el contenido del fichero ansible-navigator.yml. El fichero se encuentra en el directorio home:

$ cat ~/.ansible-navigator.yml
---
ansible-navigator:
  ansible:
    inventories:
    - /home/student/lab_inventory/hosts

  execution-environment:
    image: quay.io/acme_corp/network-ee:latest
    enabled: true
    container-engine: podman
    pull-policy: missing
    volume-mounts:
    - src: "/etc/ansible/"
      dest: "/etc/ansible/"

Fíjate en los siguientes parámetros del fichero ansible-navigator.yml:

Para ver un listado completo con todas las opciones configurables, consulta la documentación

Paso 5 - Examinando el inventario

El alcance de un play dentro de un playbook está limitado a los grupos de máquinas declarados en el inventario de Ansible. Ansible sorpota múltiples tipos de inventarios. Un inventario puede ser un simple fichero en claro con una colección de máquinas definidas en él o un script dinámico (que potencialmente consulte a un backend CMDB) que genere una lista de dispositivos contra los que ejecutar el playbook.

En este ejercicio trabajarás con un inventario basado en fichero en formato ini. Usa tanto Visual Studio Code o el comando cat para ver el contenido del fichero ~/lab_inventory/hosts.

$ cat ~/lab_inventory/hosts
[all:vars]
ansible_ssh_private_key_file=~/.ssh/aws-private.pem

[routers:children]
cisco
juniper
arista

[cisco]
rtr1 ansible_host=18.222.121.247 private_ip=172.16.129.86
[arista]
rtr2 ansible_host=18.188.194.126 private_ip=172.17.158.197
rtr4 ansible_host=18.221.5.35 private_ip=172.17.8.111
[juniper]
rtr3 ansible_host=3.14.132.20 private_ip=172.16.73.175

[cisco:vars]
ansible_user=ec2-user
ansible_network_os=ios
ansible_connection=network_cli

[juniper:vars]
ansible_user=ec2-user
ansible_network_os=junos
ansible_connection=netconf

[arista:vars]
ansible_user=ec2-user
ansible_network_os=eos
ansible_connection=network_cli
ansible_become=true
ansible_become_method=enable

[dc1]
rtr1
rtr3

[dc2]
rtr2
rtr4

[control]
ansible ansible_host=13.58.149.157 ansible_user=student private_ip=172.16.240.184

Paso 6 - Comprendiendo el inventario

En la salida anterior, cada [ ] define un grupo. Por ejemplo, [dc1] es el grupo que contiene las máquinas rtr1 y rtr3. Los grupos también pueden ser anidados. El grupo [routers] es el padre del grupo [cisco].

Los grupos padres se declaran usando la directiva children. Tener grupos anidados provee la flexibilidad de asignar valores más específicos a las variables.

Podemos asociar variables tanto a grupos como a máquinas.

Nota:

El grupo llamado all siempre existe y contiene a todos los grupos y todas las máquinas definidas dentro de un inventario.

Las variables de máquinas también pueden definirse en la misma línea que define a la máquina. Por ejemplo, la máquina rtr1:

rtr1 ansible_host=18.222.121.247 private_ip=172.16.129.86

Los grupos de variables de grupo se declaran usando la directiva vars. Tener grupos permite la flexibilidad de asignar variables comunes a múltiples hosts. Se pueden definir múltiples variables de grupo bajo la sección [group_name:vars]. Por ejemplo, echa un vistazo al grupo cisco:

[cisco:vars]
ansible_user=ec2-user
ansible_network_os=ios
ansible_connection=network_cli

Paso 7 - Usando ansible-navigator para explorar el inventario

También se puede usar la utilidad TUI, ansible-navigator para explorar el inventario.

Ejecuta el comando ansible-navigator inventory para mostrar el inventario en la TUI:

ansible-navigator tui

Pulsa 0 o 1 en el teclado, para mostrar los grupos o máquinas respectivamente.

ansible-navigator groups

Pulsa la tecla Esc para subir un nivel o para hacer zoom en una máquina en particular:

ansible-navigator host

Paso 8 - Connectándose a dispositivos de red

Hay 4 enrutadores llamados rtr1, rtr2, rtr3 y rtr4. El diagrama de red está siempre disponible en network automation workshop table of contents. El fichero de configuración de SSH (~/.ssh/config) está ya configurado en el nodo de control. Es decir, puedes hacer SSH a cualquier enrutador desde el nodo de control sin necesidad de login:

Por ejemplo, conectate a rtr1 desde el nodo de control de Ansible haciendo:

$ ssh rtr1

Por ejemplo:

$ ssh rtr1
Warning: Permanently added 'rtr1,35.175.115.246' (RSA) to the list of known hosts.



rtr1#show ver
Cisco IOS XE Software, Version 16.09.02

Completado

¡Felicidades, has completado el ejercicio de laboratorio 1!

Ahora ya sabes:


Próximo ejercicio

Haz click aquí para volver al taller Ansible Network Automation