Translated to Spanish the day64 file

Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
Manuel Vergara 2023-06-14 05:38:45 +02:00
parent 68381e7220
commit 0676fe11a5

View File

@ -1,16 +1,16 @@
## Ansible: Getting Started
## Ansible: Introducción
We covered a little about what Ansible is in the [big picture session yesterday](day63.md) But we are going to get started with a little more information on top of that here. Firstly Ansible comes from RedHat. Secondly, it is agentless, connects via SSH and runs commands. Thirdly it is cross-platform (Linux & macOS, WSL2) and open-source (there is also a paid-for enterprise option) Ansible pushes configuration vs other models.
Ayer cubrimos un poco sobre qué es Ansible en la sesión de la imagen general puedes verla en en el [día 63](day63.md), pero ahora vamos a comenzar con un poco más de información sobre eso. En primer lugar, Ansible proviene de RedHat. En segundo lugar, es sin agente, se conecta a través de SSH y ejecuta comandos. En tercer lugar, es multiplataforma (Linux y macOS, WSL2) y de código abierto (también existe una opción empresarial de pago). Ansible aplica configuraciones en comparación con otros modelos.
### Ansible Installation
### Instalación de Ansible
As you might imagine, RedHat and the Ansible team have done a fantastic job of documenting Ansible. This generally starts with the installation steps which you can find [here](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) Remember we said that Ansible is an agentless automation tool, the tool is deployed to a system referred to as a "Control Node" from this control node is manages machines and other devices (possibly network) over SSH.
Como puedes imaginar, RedHat y el equipo de Ansible han hecho un trabajo fantástico documentando Ansible. Esto comienza generalmente con los pasos de instalación, que puedes encontrar [aquí](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html). Recuerda que dijimos que Ansible es una herramienta de automatización sin agente y que la herramienta se implementa en un sistema denominado "Nodo de Control". Desde este nodo de control, se administran máquinas y otros dispositivos (posiblemente de red) a través de SSH.
It does state in the above-linked documentation that the Windows OS cannot be used as the control node.
En la documentación vinculada anteriormente, se menciona que el sistema operativo Windows no puede utilizarse como nodo de control.
For my control node and at least this demo, I am going to use the Linux VM we created way back in the [Linux section](day20.md) as my control node.
Para mi nodo de control y al menos para esta demostración, voy a utilizar la máquina virtual de Linux que creamos en la [sección de Linux](day20.md) como mi nodo de control.
This system was running Ubuntu and the installation steps simply need the following commands.
Este sistema ejecutaba Ubuntu y los pasos de instalación simplemente requieren los siguientes comandos.
```Shell
sudo apt update
@ -19,59 +19,60 @@ sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
```
Now we should have ansible installed on our control node, you can check this by running `ansible --version` and you should see something similar to this below.
Ahora deberíamos tener Ansible instalado en nuestro nodo de control. Puedes verificar esto ejecutando `ansible --version` y deberías ver algo similar a esto a continuación.
![](Images/Day64_config1.png)
Before we then start to look at controlling other nodes in our environment, we can also check the functionality of ansible by running a command against our local machine `ansible localhost -m ping` will use an [Ansible Module](https://docs.ansible.com/ansible/2.9/user_guide/modules_intro.html) and this is a quick way to perform a single task across many different systems. I mean it is not much fun with just the local host but imagines you wanted to get something or make sure all your systems were up and you had 1000+ servers and devices.
Antes de comenzar a controlar otros nodos en nuestro entorno, también podemos verificar la funcionalidad de Ansible ejecutando un comando contra nuestra máquina local. `ansible localhost -m ping` utilizará un [Ansible Module](https://docs.ansible.com/ansible/2.9/user_guide/modules_intro.html) , que es una forma rápida de realizar una tarea única en muchos sistemas diferentes. No es muy divertido con solo el host local, pero imagina que quisieras obtener algo o asegurarte de que todos tus sistemas estén funcionando y tienes más de 1000 servidores y dispositivos.
![](Images/Day64_config2.png)
Or an actual real-life use for a module might be something like `ansible webservers --m service -a "name=httpd state=started"` this will tell us if all of our webservers have the httpd service running. I have glossed over the webservers term used in that command.
Un caso de uso real para un módulo podría ser algo como ansible webservers --m service -a "name=httpd state=started". Esto nos dirá si todos nuestros servidores web tienen el servicio httpd en ejecución. He pasado por alto el término "webservers" utilizado en ese comando.
### hosts
The way I used localhost above to run a simple ping module against the system, I cannot specify another machine on my network, for example in the environment I am using my Windows host where VirtualBox is running has a network adapter with the IP 10.0.0.1 but you can see below that I can reach by pinging but I cannot use ansible to perform that task.
De la misma manera en que usé "localhost" anteriormente para ejecutar un módulo simple de ping en el sistema, no puedo especificar otra máquina en mi red. Por ejemplo, en el entorno que estoy usando, mi host de Windows donde se ejecuta VirtualBox tiene un adaptador de red con la dirección IP `10.0.0.1`, como se muestra a continuación, puedo hacer ping a esa dirección, pero no puedo usar Ansible para realizar esa tarea.
![](Images/Day64_config3.png)
For us to specify our hosts or the nodes that we want to automate with these tasks, we need to define them. We can define them by navigating to the /etc/ansible directory on your system.
Para especificar nuestros hosts o los nodos que queremos automatizar con estas tareas, necesitamos definirlos. Podemos hacerlo navegando hasta el directorio `/etc/ansible` en tu sistema.
![](Images/Day64_config4.png)
The file we want to edit is the host's file, using a text editor we can jump in and define our hosts. The host file contains lots of great instructions on how to use and modify the file. We want to scroll down to the bottom and we are going to create a new group called [windows] and we are going to add our `10.0.0.1` IP address for that host. Save the file.
El archivo que queremos editar es el archivo "hosts". Con un editor de texto, podemos abrirlo y definir nuestros hosts. El archivo hosts contiene muchas instrucciones útiles sobre cómo usar y modificar el archivo. Queremos desplazarnos hasta la parte inferior y crear un nuevo grupo llamado "windows" y agregar nuestra dirección IP `10.0.0.1` para ese host. Guarda el archivo.
![](Images/Day64_config5.png)
However, remember I said you will need to have SSH available to enable Ansible to connect to your system. As you can see below when I run `ansible windows -m ping` we get an unreachable because things failed to connect via SSH.
Sin embargo, recuerda que necesitarás tener SSH disponible para permitir que Ansible se conecte a tu sistema. Como se puede ver a continuación, cuando ejecuto `ansible windows -m ping`, obtenemos un mensaje "unreachable" porque no se pudo establecer la conexión a través de SSH.
![](Images/Day64_config6.png)
I have now also started adding some additional hosts to our inventory, another name for this file as this is where you are going to define all of your devices, could be network devices, switches and routers for example also would be added here and grouped. In our hosts file though I have also added my credentials for accessing the Linux group of systems.
También he comenzado a agregar algunos hosts adicionales a nuestro inventario, que es otro nombre para este archivo, ya que aquí es donde vas a definir todos tus dispositivos, que podrían ser dispositivos de red, switches y enrutadores, por ejemplo, y se agruparían aquí. En nuestro archivo hosts, también he agregado mis credenciales para acceder al grupo de sistemas Linux.
![](Images/Day64_config7.png)
Now if we run `ansible Linux -m ping` we get success as per below.
Ahora, si ejecutamos `ansible Linux -m ping`, obtendremos un éxito, como se muestra a continuación.
![](Images/Day64_config8.png)
We then have the node requirements, these are the target systems you wish to automate the configuration on. We are not installing anything for Ansible on these (I mean we might be installing software but there is no client from Ansible we need) Ansible will make a connection over SSH and send anything over SFTP. (If you so desire though and you have SSH configured you could use SCP vs SFTP.)
Luego, tenemos los requisitos de los nodos, que son los sistemas de destino en los que deseas automatizar la configuración. No estamos instalando nada de Ansible en estos sistemas (es decir, es posible que estemos instalando software, pero no necesitamos un cliente de Ansible). Ansible establecerá una conexión a través de SSH y enviará archivos a través de SFTP (si así lo deseas y tienes SSH configurado, también podrías usar SCP en lugar de SFTP).
### Ansible Commands
### Comandos de Ansible
You saw that we were able to run `ansible Linux -m ping` against our Linux machine and get a response, basically, with Ansible we can run many ad-hoc commands. But you can run this against a group of systems and get that information back. [ad hoc commands](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html)
Viste que pudimos ejecutar ansible Linux -m ping en nuestra máquina Linux y obtener una respuesta. Básicamente, con Ansible, podemos ejecutar muchos comandos ad-hoc. Pero puedes ejecutarlos en un grupo de sistemas y obtener esa información de vuelta. [Comandos ad-hoc](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html)
If you find yourself repeating commands or even worse you are having to log into individual systems to run these commands then Ansible can help there. For example, the simple command below would give us the output of all the operating system details for all of the systems we add to our Linux group.
Si te encuentras repitiendo comandos o, peor aún, tienes que iniciar sesión en sistemas individuales para ejecutar estos comandos, Ansible puede ayudarte en ese sentido. Por ejemplo, el simple comando a continuación nos daría la salida de todos los detalles del sistema operativo para todos los sistemas que agreguemos a nuestro grupo de Linux.
`ansible linux -a "cat /etc/os-release"`
Other use cases could be to reboot systems, copy files, and manage packers and users. You can also couple ad hoc commands with Ansible modules.
Otros casos de uso podrían ser reiniciar sistemas, copiar archivos y administrar paquetes y usuarios. También puedes combinar comandos ad-hoc con módulos de Ansible.
Ad hoc commands use a declarative model, calculating and executing the actions required to reach a specified final state. They achieve a form of idempotence by checking the current state before they begin and doing nothing unless the current state is different from the specified final state.
Los comandos ad-hoc utilizan un modelo declarativo, calculan y ejecutan las acciones necesarias para alcanzar un estado final especificado. Logran una forma de idempotencia mediante la comprobación del estado actual antes de comenzar y no haciendo nada a menos que el estado actual sea diferente al estado final especificado.
## Resources
## Recursos
- [What is Ansible](https://www.youtube.com/watch?v=1id6ERvfozo)
- [Ansible 101 - Episode 1 - Introduction to Ansible](https://www.youtube.com/watch?v=goclfp6a2IQ)
- [NetworkChuck - You need to learn Ansible right now!](https://www.youtube.com/watch?v=5hycyr-8EKs&t=955s)
- [Chef vs Puppet vs Ansible vs Saltstack](https://vergaracarmona.es/chef-vs-puppet-vs-ansible-vs-saltstack/)
See you on [Day 65](day65.md)
Nos vemos en el [Día 65](day65.md)