Introducción
Ansible es una poderosa herramienta de automatización de código abierto que ha ganado una amplia adopción en la industria de TI. A medida que Ansible evoluciona, es importante mantener su instalación actualizada para aprovechar las últimas características y mejoras. Este tutorial le guiará a través del proceso de actualización de Ansible a la última versión en Ubuntu, que es el sistema operativo utilizado en este entorno de laboratorio.
Comprender Ansible y Verificar su Versión Actual
Antes de actualizar Ansible, es útil comprender qué es Ansible y verificar qué versión tiene actualmente instalada.
¿Qué es Ansible?
Ansible es una plataforma de automatización de código abierto que simplifica la gestión de la configuración, el despliegue de aplicaciones y la automatización de tareas. Utiliza la sintaxis YAML para crear playbooks, que son documentos que describen el estado deseado de sus sistemas.
Algunos beneficios clave de Ansible incluyen:
- Arquitectura sin agente (Agentless architecture): No es necesario instalar agentes en los nodos gestionados
- Sintaxis simple: Utiliza archivos YAML legibles por humanos
- Ejecución idempotente (Idempotent execution): Ejecutar el mismo playbook varias veces produce el mismo resultado
- Extensible: Admite módulos y plugins personalizados
Verificando su Versión Actual de Ansible
Comencemos por verificar si Ansible ya está instalado y, en caso afirmativo, qué versión tiene. Abra una terminal y ejecute:
ansible --version
Debería ver una salida similar a esta:
ansible [core 2.12.0]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/labex/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3/dist-packages/ansible
ansible collection location = /home/labex/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0]
jinja version = 3.0.3
libyaml = True
La primera línea muestra su versión actual de Ansible. Si no ve una salida como esta, es posible que Ansible aún no esté instalado, lo cual está bien porque lo instalaremos en el siguiente paso.
Comprender el Versionado de Ansible
Ansible sigue el versionado semántico (semantic versioning) con tres números: major.minor.patch
- Versión principal (Major version): Cambios significativos que pueden requerir modificaciones en sus playbooks
- Versión secundaria (Minor version): Nuevas características sin cambios que rompan la compatibilidad
- Versión de parche (Patch version): Correcciones de errores y mejoras menores
Ahora que entendemos qué es Ansible y hemos verificado nuestra versión actual, estamos listos para proceder con la instalación o actualización de Ansible en el siguiente paso.
Instalación o Actualización de Ansible en Ubuntu
En este paso, instalaremos o actualizaremos Ansible en el sistema Ubuntu 22.04. Usaremos el PPA (Personal Package Archive) oficial de Ansible para obtener la última versión estable.
Añadiendo el Repositorio PPA de Ansible
Primero, necesitamos asegurarnos de tener la dependencia necesaria para agregar PPAs:
sudo apt update
sudo apt install -y software-properties-common
Este comando actualiza su índice de paquetes e instala el paquete software-properties-common, que proporciona el comando add-apt-repository.
Ahora, agreguemos el repositorio PPA oficial de Ansible:
sudo add-apt-repository --yes --update ppa:ansible/ansible
Verá una salida que muestra que el repositorio se ha agregado a su sistema. La bandera --yes confirma automáticamente la adición, y --update actualiza la lista de paquetes inmediatamente.
Instalando la Última Versión de Ansible
Con el repositorio agregado, ahora podemos instalar la última versión de Ansible:
sudo apt install -y ansible
La bandera -y confirma automáticamente la instalación sin solicitar confirmación.
Este comando instalará Ansible si aún no está presente o lo actualizará a la última versión disponible en el PPA.
Verificando la Instalación o Actualización
Después de que se complete la instalación, verifiquemos que Ansible esté instalado correctamente y comprobemos su versión:
ansible --version
La salida debería mostrar la última versión de Ansible disponible en el PPA. Si anteriormente tenía una versión anterior instalada, ahora debería ver un número de versión más reciente.
Para realizar un seguimiento de nuestro progreso para el script de verificación, creemos un archivo marcador:
touch /tmp/ansible_version_checked
touch /tmp/ansible_installed
Ahora hemos instalado o actualizado Ansible con éxito en nuestro sistema Ubuntu. En el siguiente paso, exploraremos cómo usar algunos comandos básicos de Ansible para verificar que nuestra instalación funcione correctamente.
Verificando su Instalación de Ansible con un Playbook Simple
Ahora que Ansible está instalado, confirmemos que funciona correctamente creando y ejecutando un playbook simple. Los playbooks son archivos YAML que describen el estado deseado de sus sistemas y las tareas que Ansible debe realizar para alcanzar ese estado.
Creando un Playbook de Prueba
Primero, creemos un directorio para nuestro proyecto Ansible:
mkdir -p ~/project/ansible-test
cd ~/project/ansible-test
Ahora, creemos un playbook simple usando el editor de código integrado. En el WebIDE, haga clic en el icono "Explorer" en la barra lateral izquierda, navegue hasta el directorio ansible-test que acabamos de crear y cree un nuevo archivo llamado test-playbook.yml.
Agregue el siguiente contenido a este archivo:
---
- name: Test Ansible Installation
hosts: localhost
connection: local
gather_facts: no
tasks:
- name: Print a message
debug:
msg: "Ansible is installed and working correctly!"
- name: Get Ansible version
command: ansible --version
register: ansible_version_output
- name: Display Ansible version
debug:
msg: "{{ ansible_version_output.stdout_lines[0] }}"
- name: Create a test file
file:
path: /tmp/ansible-test-file.txt
state: touch
mode: "0644"
Este playbook hace lo siguiente:
- Se dirige a la máquina local (
localhost) - Imprime un mensaje de éxito
- Recupera y muestra la versión de Ansible
- Crea un archivo de prueba en
/tmp/ansible-test-file.txt
Ejecutando el Playbook
Ahora ejecutemos el playbook para verificar que Ansible funciona correctamente:
cd ~/project/ansible-test
ansible-playbook test-playbook.yml
Debería ver una salida similar a esta:
PLAY [Test Ansible Installation] ***********************************************
TASK [Print a message] *********************************************************
ok: [localhost] => {
"msg": "Ansible is installed and working correctly!"
}
TASK [Get Ansible version] *****************************************************
changed: [localhost]
TASK [Display Ansible version] *************************************************
ok: [localhost] => {
"msg": "ansible [core 2.12.0]"
}
TASK [Create a test file] ******************************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
La salida muestra que todas las tareas se completaron con éxito. El changed=2 en el resumen indica que dos tareas realizaron cambios en el sistema (obtener la versión y crear el archivo).
Verificando el Archivo de Prueba
Verifiquemos si el archivo de prueba fue creado:
ls -l /tmp/ansible-test-file.txt
Debería ver el archivo listado con los permisos que especificamos:
-rw-r--r-- 1 labex labex 0 Aug 30 12:34 /tmp/ansible-test-file.txt
Marquemos este paso como completo para nuestro script de verificación:
touch /tmp/ansible_playbook_tested
¡Felicitaciones! Ha instalado con éxito la última versión de Ansible y ha verificado que funciona correctamente ejecutando un playbook simple. Esto confirma que su instalación de Ansible es completamente funcional y está lista para su uso.
Comprensión de la Configuración y los Módulos de Ansible
Ahora que tenemos Ansible instalado y funcionando, exploremos su configuración y el concepto de módulos.
Configuración de Ansible
Ansible utiliza archivos de configuración para controlar su comportamiento. El archivo de configuración principal es ansible.cfg, que puede existir en varias ubicaciones. Examinemos el archivo de configuración predeterminado:
ls -la /etc/ansible/
Debería ver la estructura de directorio predeterminada de Ansible:
total 20
drwxr-xr-x 2 root root 4096 Aug 30 12:00 .
drwxr-xr-x 85 root root 4096 Aug 30 12:00 ..
-rw-r--r-- 1 root root 8669 Aug 30 12:00 ansible.cfg
-rw-r--r-- 1 root root 1021 Aug 30 12:00 hosts
Echemos un vistazo al archivo hosts, que es el archivo de inventario predeterminado:
cat /etc/ansible/hosts
El archivo de inventario contiene una lista de hosts que Ansible puede administrar. De forma predeterminada, contiene ejemplos que están comentados.
Creando una Configuración Personalizada
Creemos nuestro propio archivo de configuración de Ansible en nuestro directorio de proyecto. En el WebIDE, cree un nuevo archivo llamado ansible.cfg en el directorio ~/project/ansible-test con el siguiente contenido:
[defaults]
inventory = ./inventory
host_key_checking = False
stdout_callback = yaml
Ahora, creemos un archivo de inventario simple. En el WebIDE, cree un nuevo archivo llamado inventory en el directorio ~/project/ansible-test con el siguiente contenido:
[local]
localhost ansible_connection=local
Explorando los Módulos de Ansible
Los módulos de Ansible son unidades de código reutilizables que realizan tareas específicas. Exploremos algunos de los módulos disponibles:
ansible-doc -l | wc -l
Este comando enumera todos los módulos disponibles y los cuenta. Debería ver un número grande, típicamente más de 1000 módulos.
Veamos la documentación de un módulo específico, como el módulo file que usamos en nuestro playbook:
ansible-doc file
Puede presionar q para salir del visor de documentación.
Creando un Playbook Más Complejo
Ahora, creemos un playbook más avanzado que demuestre algunos módulos más de Ansible. En el WebIDE, cree un nuevo archivo llamado modules-demo.yml en el directorio ~/project/ansible-test con el siguiente contenido:
---
- name: Ansible Modules Demo
hosts: localhost
connection: local
gather_facts: yes
tasks:
- name: Display system information
debug:
msg: "System: {{ ansible_distribution }} {{ ansible_distribution_version }}"
- name: Create a directory
file:
path: /tmp/ansible-demo
state: directory
mode: "0755"
- name: Copy a file
copy:
content: "Created by Ansible modules demo playbook\n"
dest: /tmp/ansible-demo/info.txt
mode: "0644"
- name: Gather information about a file
stat:
path: /tmp/ansible-demo/info.txt
register: file_info
- name: Show file information
debug:
msg: "File created at {{ file_info.stat.mtime }}"
Ejecutemos este playbook:
cd ~/project/ansible-test
ansible-playbook modules-demo.yml
El playbook hace lo siguiente:
- Muestra información sobre su sistema
- Crea un directorio en
/tmp/ansible-demo - Crea un archivo con contenido personalizado
- Recopila información sobre el archivo
- Muestra la hora de modificación del archivo
Marquemos este paso como completo para nuestro script de verificación:
touch /tmp/ansible_modules_explored
Ahora ha aprendido sobre la configuración de Ansible, los archivos de inventario y ha explorado varios módulos. Estos son componentes esenciales para trabajar con Ansible de manera efectiva.
Resumen
En este laboratorio, ha aprendido con éxito cómo instalar y actualizar Ansible a la última versión en un sistema Ubuntu. Ha logrado varias tareas clave:
- Comprendió los conceptos básicos de Ansible y su sistema de versionado
- Instaló o actualizó Ansible utilizando el repositorio PPA oficial
- Verificó su instalación creando y ejecutando un playbook simple
- Exploró los archivos de configuración de Ansible y la gestión de inventario
- Aprendió sobre los módulos de Ansible y su documentación
- Creó y ejecutó playbooks más complejos para realizar diversas tareas
Estas habilidades proporcionan una base sólida para trabajar con Ansible en proyectos de automatización. Al mantener su instalación de Ansible actualizada, puede aprovechar las últimas funciones, correcciones de errores y actualizaciones de seguridad.
A medida que continúe su viaje con Ansible, puede explorar temas más avanzados como roles, colecciones y Ansible AWX/Tower para la gestión empresarial. Estas herramientas le ayudarán a construir flujos de trabajo de automatización más sofisticados y a gestionar la infraestructura a escala.


