Skip to content

Commit 0a6637a

Browse files
committed
Move to new top-level repo
Signed-off-by: NilashishC <[email protected]>
1 parent 653999c commit 0a6637a

File tree

167 files changed

+12455
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

167 files changed

+12455
-0
lines changed
Lines changed: 299 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,299 @@
1+
# Ejercicio 1 - Explorando el entorno de laboratorio
2+
3+
**Leálo en otros idiomas**: ![uk](https://github.com/ansible/workshops/raw/devel/images/uk.png) [English](README.md), ![japan](https://github.com/ansible/workshops/raw/devel/images/japan.png) [日本語](README.ja.md), ![Español](https://github.com/ansible/workshops/raw/devel/images/es.png) [Español](README.es.md).
4+
5+
## Índice
6+
7+
- [Ejercicio 1 - Explorando el entorno de laboratorio](#ejercicio-1---explorando-el-entorno-de-laboratorio)
8+
- [Índice](#índice)
9+
- [Objetivo](#objetivo)
10+
- [Diagrama](#diagrama)
11+
- [Guía](#guía)
12+
- [Paso 1 - Connectar vía VS Code](#paso-1---connectar-vía-vs-code)
13+
- [Paso 2 - Usando la Terminal](#paso-2---usando-la-terminal)
14+
- [Paso 3 - Examinando los Entornos de Ejecución](#paso-3---examinando-los-entornos-de-ejecución)
15+
- [Paso 4 - Examinando la configuración de ansible-navigator](#paso-4---examinando-la-configuración-de-ansible-navigator)
16+
- [Paso 5 - Examinando el inventario](#paso-5---examinando-el-inventario)
17+
- [Paso 6 - Comprendiendo el inventario](#paso-6---comprendiendo-el-inventario)
18+
- [Paso 7 - Usando ansible-navigator para explorar el inventario](#paso-7---usando-ansible-navigator-para-explorar-el-inventario)
19+
- [Paso 8 - Connectándose a dispositivos de red](#paso-8---connectándose-a-dispositivos-de-red)
20+
- [Completado](#completado)
21+
22+
## Objetivo
23+
24+
Explorar y comprender el entorno de laboratorio.
25+
26+
Estos primeros ejercicios de laboratorio consistirán en explorar las utilidades de línea de comando de Ansible Automation Platform.
27+
Esto incluye:
28+
29+
- [ansible-navigator](https://github.com/ansible/ansible-navigator) - una utilidad de línea de comando e interfaz de usuario basado en texto (TUI) para ejecutar y desarrollar contenido de automatización de Ansible.
30+
- [ansible-core](https://docs.ansible.com/core.html) - el ejecutable que provee el marco, lenguaje y funciones que componen Ansible Automation Platform. También incluye varias utilidades de línea de comandos como `ansible`, `ansible-playbook` y `ansible-doc`. Ansible Core actúa como el puente entre la comunidad upstream y los contenidos open source y gratuítos de Ansible además de conectarlo con la oferta empresarial de automatización downstream de Red Hat, el producto Ansible Automation Platform.
31+
- [Entornos de Ejecución](https://docs.ansible.com/automation-controller/latest/html/userguide/execution_environments.html) - no cubiertos específicamente en este taller puesto que el entorno de Ansible Execution Environments ya está incluído en todas las colecciones soportadas de Red Hat que comprenden todas las colecciones de red utilizadas en este taller. Los Entornos de Ejecución son imágenes de contenedores que pueden ser usadas como ejecuciones de Ansible.
32+
- [ansible-builder](https://github.com/ansible/ansible-builder) - como el anterior, no cubierto específicamente en este taller, `ansible-builder` es una utilidad de línea de comando para automatizar el proceso de creación de Entornos de Ejecución.
33+
34+
Si necesitaás más informacion sobre los nuevos componentes de Ansible Automation Platform, añáde esta página [https://red.ht/AAP-20](https://red.ht/AAP-20) a tus marcadores.
35+
36+
> Join our community forum!
37+
>
38+
> Before you get started, please join us on <a target="_new" href="https://forum.ansible.com/">https://forum.ansible.com/</a>. This will allow you to get Ansible help after the workshops concludes.
39+
40+
## Diagrama
41+
42+
![Red Hat Ansible Automation](https://github.com/ansible/workshops/raw/devel/images/ansible_network_diagram.png)
43+
44+
45+
46+
## Guía
47+
48+
### Paso 1 - Connectar vía VS Code
49+
50+
<table>
51+
<thead>
52+
<tr>
53+
<th> Se recomienda el uso de Visual Studio Code para completar los ejercicios. Visual Studio Code provee:
54+
<ul>
55+
<li>Un explorador de ficheros</li>
56+
<li>Un editor de texto con sintaxis resaltada</li>
57+
<li>Una terminal embebida</li>
58+
</ul>
59+
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: <a href="https://youtu.be/Y_Gx4ZBfcuk">Ansible Workshops - Accessing your workbench environment</a>.
60+
</th>
61+
</tr>
62+
</thead>
63+
</table>
64+
65+
- Conéctate a Visual Studio Code desde la página inicial del taller (provista por el instructor). La password se provee bajo el enlace de WebUI.
66+
67+
![launch page](images/launch_page.png)
68+
69+
- Introduce la contraseña que se te ha provisto para poder ingresar.
70+
71+
![login vs code](images/vscode_login.png)
72+
73+
- Abre el directorio `network-workshop` en Visual Studio Code:
74+
75+
![picture of file browser](images/vscode-networkworkshop.png)
76+
77+
- Haz click en el finchero `playbook.yml` para ver el contenido.
78+
79+
![picture of playbook](images/vscode-playbook.png)
80+
81+
### Paso 2 - Usando la Terminal
82+
83+
- Abre una terminal en Visual Studio Code:
84+
85+
![picture of new terminal](images/vscode-new-terminal.png)
86+
87+
Navega hasta el directorio `network-workshop` en la terminal del nodo de control de Ansible.
88+
89+
```bash
90+
[student@ansible-1 ~]$ cd ~/network-workshop/
91+
[student@ansible-1 network-workshop]$ pwd
92+
/home/student/network-workshop
93+
[student@ansible-1 network-workshop]$
94+
```
95+
96+
* `~` - la tilde en este contexto es un atajo para el directorio, ej. `/home/student`
97+
* `cd` - comando de Linux para cambiar de directorio.
98+
* `pwd` - comando de Linux para mostrar el directorio de trabajo. Con esto, se mostrará el `path` completo al directorio de trabajo actual.
99+
100+
### Paso 3 - Examinando los Entornos de Ejecución
101+
102+
Ejecuta el comando `ansible-navigator` con el argumento `images` para ver los entornos de ejecución configurados en el nodo de control:
103+
104+
```bash
105+
$ ansible-navigator images
106+
```
107+
108+
![ansible-navigator images](images/navigator-images.png)
109+
110+
111+
> Nota
112+
>
113+
> La salida mostrada puede diferir de la anteriomente mostrada
114+
115+
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`:
116+
117+
![ee main menu](images/navigator-ee-menu.png)
118+
119+
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`:
120+
121+
![ee info](images/navigator-ee-collections.png)
122+
123+
### Paso 4 - Examinando la configuración de ansible-navigator
124+
125+
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:
126+
127+
```bash
128+
$ cat ~/.ansible-navigator.yml
129+
---
130+
ansible-navigator:
131+
ansible:
132+
inventories:
133+
- /home/student/lab_inventory/hosts
134+
135+
execution-environment:
136+
image: quay.io/acme_corp/network-ee:latest
137+
enabled: true
138+
container-engine: podman
139+
pull-policy: missing
140+
volume-mounts:
141+
- src: "/etc/ansible/"
142+
dest: "/etc/ansible/"
143+
```
144+
145+
Fíjate en los siguientes parámetros del fichero `ansible-navigator.yml`:
146+
147+
* `inventories`: muestra la ubicación del inventario de ansible actualmente en uso.
148+
* `execution-environment`: dónde está configurado el entorno de ejecución por defecto.
149+
150+
Para ver un listado completo con todas las opciones configurables, consulta la [documentación](https://ansible-navigator.readthedocs.io/en/latest/settings/)
151+
152+
### Paso 5 - Examinando el inventario
153+
154+
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](http://docs.ansible.com/ansible/latest/intro_inventory.html). 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.
155+
156+
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`.
157+
158+
```bash
159+
$ cat ~/lab_inventory/hosts
160+
```
161+
162+
```bash
163+
[all:vars]
164+
ansible_ssh_private_key_file=~/.ssh/aws-private.pem
165+
166+
[routers:children]
167+
cisco
168+
juniper
169+
arista
170+
171+
[cisco]
172+
rtr1 ansible_host=18.222.121.247 private_ip=172.16.129.86
173+
[arista]
174+
rtr2 ansible_host=18.188.194.126 private_ip=172.17.158.197
175+
rtr4 ansible_host=18.221.5.35 private_ip=172.17.8.111
176+
[juniper]
177+
rtr3 ansible_host=3.14.132.20 private_ip=172.16.73.175
178+
179+
[cisco:vars]
180+
ansible_user=ec2-user
181+
ansible_network_os=ios
182+
ansible_connection=network_cli
183+
184+
[juniper:vars]
185+
ansible_user=ec2-user
186+
ansible_network_os=junos
187+
ansible_connection=netconf
188+
189+
[arista:vars]
190+
ansible_user=ec2-user
191+
ansible_network_os=eos
192+
ansible_connection=network_cli
193+
ansible_become=true
194+
ansible_become_method=enable
195+
196+
[dc1]
197+
rtr1
198+
rtr3
199+
200+
[dc2]
201+
rtr2
202+
rtr4
203+
204+
[control]
205+
ansible ansible_host=13.58.149.157 ansible_user=student private_ip=172.16.240.184
206+
```
207+
208+
### Paso 6 - Comprendiendo el inventario
209+
210+
En la salida anterior, cada `[ ]` define un grupo. Por ejemplo, `[dc1]` es el grupo que contiene las máquinas `rtr1` y `rtr3`.
211+
Los grupos también pueden ser _anidados_. El grupo `[routers]` es el padre del grupo `[cisco]`.
212+
213+
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.
214+
215+
Podemos asociar variables tanto a grupos como a máquinas.
216+
217+
> Nota:
218+
>
219+
> El grupo llamado **all** siempre existe y contiene a todos los grupos y todas las máquinas definidas dentro de un inventario.
220+
221+
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`:
222+
223+
```sh
224+
rtr1 ansible_host=18.222.121.247 private_ip=172.16.129.86
225+
```
226+
227+
* `rtr1` - El nombre que Ansible usará. Puede pero no tiene por qué depender del nombre DNS.
228+
* `ansible_host` - La dirección IP que Ansible usará, si no se configura, buscará en el DNS por defecto.
229+
* `private_ip` - Este valor no está reservado por Ansible, así que por defecto, tomará el valor de la [variable host](http://docs.ansible.com/ansible/latest/intro_inventory.html#host-variables). Esta variable puede usarse en playbooks o ignorarse por completo.
230+
231+
Los grupos de variables de grupo se declaran usando la directiva
232+
`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`:
233+
234+
```sh
235+
[cisco:vars]
236+
ansible_user=ec2-user
237+
ansible_network_os=ios
238+
ansible_connection=network_cli
239+
```
240+
241+
* `ansible_user` - El usuario de Ansible que se usará para hacer login en esta máquina. Si no está configurado tomará el valor por defecto del usuario en el playbook desde el que se está ejecutando.
242+
* `ansible_network_os` - Esta variable es necesaria mientras se usa el tipo de conexión `network_cli` dentro de una definición de `play`, como veremos en breve.
243+
* `ansible_connection` - Esta variable configura el [plugin de conexión](https://docs.ansible.com/ansible/latest/plugins/connection.html) para el grupo. Puede configurarse a los valores `netconf`, `httpapi` y `network_cli` dependiendo de lo que soporte este tipo de plataforma de red en particular.
244+
245+
### Paso 7 - Usando ansible-navigator para explorar el inventario
246+
247+
También se puede usar la utilidad TUI, `ansible-navigator` para explorar el inventario.
248+
249+
Ejecuta el comando `ansible-navigator inventory` para mostrar el inventario en la TUI:
250+
251+
![ansible-navigator tui](images/ansible-navigator.png)
252+
253+
Pulsa **0** o **1** en el teclado, para mostrar los grupos o máquinas respectivamente.
254+
255+
![ansible-navigator groups](images/ansible-navigator-groups.png)
256+
257+
Pulsa la tecla **Esc** para subir un nivel o para hacer zoom en una máquina en particular:
258+
259+
![ansible-navigator host](images/ansible-navigator-rtr-1.png)
260+
261+
### Paso 8 - Connectándose a dispositivos de red
262+
263+
Hay 4 enrutadores llamados rtr1, rtr2, rtr3 y rtr4. El diagrama de red está siempre disponible en [network automation workshop table of contents](../README.md). 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:
264+
265+
Por ejemplo, conectate a rtr1 desde el nodo de control de Ansible haciendo:
266+
267+
```bash
268+
$ ssh rtr1
269+
```
270+
271+
Por ejemplo:
272+
```
273+
$ ssh rtr1
274+
Warning: Permanently added 'rtr1,35.175.115.246' (RSA) to the list of known hosts.
275+
276+
277+
278+
rtr1#show ver
279+
Cisco IOS XE Software, Version 16.09.02
280+
```
281+
282+
## Completado
283+
284+
¡Felicidades, has completado el ejercicio de laboratorio 1!
285+
286+
Ahora ya sabes:
287+
288+
* Cómo conectarte al entorno de laboratorio usando Visual Studio Code
289+
* Cómo explorar los **entornos de ejecución** usando `ansible-navigator`
290+
* Dónde se encuentra la configuración del navegador de Ansible (`ansible-navigator.yml`)
291+
* Dónde se encuentra el inventario para poder realizar los ejercicios de línea de comandos
292+
* Cómo usar el comando `ansible-navigator`y su interfaz TUI (interfaz de usuario basada en texto).
293+
294+
295+
296+
---
297+
[Próximo ejercicio](../2-first-playbook/README.es.md)
298+
299+
[Haz click aquí para volver al taller Ansible Network Automation](../README.es.md)

0 commit comments

Comments
 (0)