Tutoriales

Instalar y configurar Ansible en Linux

Esta guía paso a paso lo guiará a través de los pasos para instalar y configurar Ansible en Linux. También explica cómo configurar Ansible Homelab en Linux para aprender los conceptos básicos de Ansible.

1. Introducción

Ansible es una herramienta de automatización de TI que le permite automatizar “N” tareas en su entorno de software. Para conocer qué son Ansible y sus características, visite nuestro “Introducción a Ansible” conducta.

Obviamente, Ansible está diseñado para una gestión de configuración escalable. Si tu objetivo es aprender rápido y remodelar tu entorno, ¡estás en el camino correcto!

Ansible es un sin agentes arquitectura. Significado: no se están ejecutando agentes / procesos ansible en los nodos administrados.

Como mencioné en el artículo introductorio de Ansile, hay dos tipos de nodos en Ansible.

  • Nodo maestro / controlador – Servidor / estación de trabajo en el que se instalará ansible. Desde este nodo, ejecuta todos los libros de jugadas ansible y los comandos ansible.
  • Nodos administrados – Lista de hosts gestionados con ansible.

No todos los nodos administrados necesitan ejecutar la misma versión o tipo de distribución. Puede usar diferentes versiones de Linux como nodos administrados.

La comunicación entre el controlador y los nodos gestionados se realiza a través de autenticación basada en clave ssh.

Esta práctica guía le mostrará cómo configurar Ansible Lab en distribuciones de Linux.

Nota:

  1. No puede utilizar Windows como nodo de controlador.
  2. Es posible configurar varios nodos de controlador.

Antes de comenzar con Ansible, quiero mostrarles la representación pictórica de mi configuración de Homelab de Ansible.

2. Diagrama de arquitectura para el laboratorio Ansible de 3 nodos

El siguiente gráfico le ofrece una bonita representación gráfica de cómo se verá el laboratorio.

Mi configuración de Ansible Homelab

Para fines de demostración, configuraré un nodo de controlador en Ubuntu 20.04 y 2 nodos administrados en CentOS 8 y Ubuntu 21.04.

3. Instale y configure Ansible en Linux

Primero, veremos cómo configurar un nodo administrado por Ansible en Linux.

3.1. Instalar Ansible en Linux

Dado que Ansible está escrito en Python, Python debe instalarse en su máquina Linux para que Ansible funcione.

Afortunadamente, todas las distribuciones de Linux vienen con Python preinstalado. Ansible es compatible con Python 2.7 y Python 3.5 y versiones posteriores.

Para verificar qué versión de Python está instalada en su computadora, puede usar los siguientes comandos. El resultado puede variar según cómo esté configurado Python en su distribución.

$ which python python2 python3
/usr/bin/python2
/usr/bin/python3

Verifique la versión de Python:

$ python2 --version
Python 2.7.18rc1
$ python3 --version
Python 3.8.5
$ compgen -c python | grep -P '^python..d'
python3.8
python3.8-config
python2.7

Hay dos formas de instalar ansible en Linux.

  1. Utilice el administrador de paquetes del sistema operativo
  2. Utilizando PEPITA – Administrador de paquetes de Python

3.1.1. Instale Ansible usando el administrador de paquetes del sistema

Primero, verá cómo usar el administrador de paquetes de su distribución para instalar ansible. Ejecute los siguientes comandos según su distribución de Linux.

Instale Ansible en Arch Linux, EndeavorOS, Manjaro Linux:

$ sudo pacman -S ansible

Debian:

Para editar /etc/apt/sources.list Archivo:

$ sudo nano /etc/apt/sources.list

Agregue la siguiente línea:

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main

Luego ejecute los siguientes comandos:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible

Fedora:

$ sudo dnf install ansible

CentOS, RHEL, AlmaLinux, Rocky Linux:

$ sudo dnf install epel-release
$ sudo dnf install ansible

Ubuntu y sus derivados:

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible

Su distribución puede enviarse con una versión desactualizada de Ansible. Si desea instalar una versión actualizada de Ansible en su sistema, puede pepita, el administrador de paquetes de Python.

3.1.2. Ansible con Pip. instalar

Primero, verifique si PIP está instalado ejecutando los siguientes comandos:

$ which pip pip3
/usr/bin/pip
/usr/bin/pip3
$ pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
$ pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

Si PIP no está instalado, ejecute los siguientes comandos para instalarlo.

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py --user

Después de instalar PIP, ejecute el siguiente comando para instalar ansible:

$ sudo python3 -m pip install ansible

Esto instalará la última versión de Ansible.

También puede instalar una versión específica de Ansible, por ejemplo 2.9, como se muestra a continuación:

$ sudo python3 -m pip install 'ansible==2.9'

Después de instalar Ansible, ejecute el siguiente comando para verificar la versión de Ansible:

$ ansible --version

Este comando proporciona información sobre dónde se encuentran el archivo de hosts, el archivo de configuración y el binario de Ansible y qué versión de Ansible está instalada.

Salida de muestra:

ansible 2.9.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/karthick/.ansible/plugins/modules',
  '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

3.2. Configurar Ansible

Como se mencionó anteriormente, Ansible se comunica con los nodos administrados mediante ssh Protocolo de autenticación.

Crearemos un par de claves ssh y lo distribuiremos a todos los nodos administrados. Entonces, cuando se envía un comando ansible, usa estas claves para autenticarse con los nodos administrados.

3.2.1. Genere un par de claves SSH para nodos administrados

Crea un nuevo usuario llamado ansible tanto en el controlador como en los nodos administrados.

$ sudo useradd ansible               ##create user 
$ sudo passwd ansible                ##set password for ansible user.

Inicie sesión / cambie como usuario ansible y cree un par de claves ssh con los comandos:

$ su - ansible
$ ssh-keygen -t rsa

Este comando genera un par de claves SSH.

Ahora distribuya el Llave pública a todos los nodos gestionados.

Puede utilizar el … ssh-copy-id Comando para copiar la clave pública al nodo de destino.

Para copiar la clave pública al nodo de destino mediante el comando ssh-copy-id, ejecute:

$ ssh-copy-id -i ~/.ssh/id_rsa [email protected]

Si tienes más nudos usa for loop para copiar la clave ssh a todos los nodos de destino.

Para los propósitos de esta guía, tengo 2 nodos administrados y los he nombrado Centos1 (centos8) y ubuntu1 (Ubuntu 20.04). Para copiar la clave a ambos nodos utilicé el siguiente código:

$ for node in centos1 ubuntu1; do ssh-copy-id -i /home/ansible/.ssh/id_rsa [email protected]$node done
Copie la clave SSH en el nodo de destino
Copie la clave SSH en el nodo de destino

Ahora inicie sesión en su nodo administrado para verificar que la autenticación basada en claves funcione correctamente.

$ ssh [email protected]

La configuración ansible ahora está completa. El siguiente paso debería ser crear un archivo de inventario y ejecutar algunos comandos ansible contra los hosts administrados.

3.2.2. Pruebe la configuración de Ansible

Ansible tiene dos archivos importantes que deben enviarse ad hoc o Libro de jugadas Comandos.

  1. Ansible.cfg – Archivo de configuración de Ansible.
  2. Hosts – Archivo de inventario que proporciona detalles del host.

Bueno, con más detalle sobre los archivos de configuración e inventario en un artículo separado. Por ahora, para ejecutar el primer comando ansible, todo lo que necesita hacer es agregar los nombres de host de sus nodos administrados al archivo de inventario.

El archivo de configuración de Ansible se encuentra en /etc/ansible/ansible.cfg Archivo. También puede obtener este detalle mirando el ansible version Mando:

$ ansible --version
ansible 2.9.0
 config file = /etc/ansible/ansible.cfg
 configured module search path = ['/home/karthick/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
 ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
 executable location = /usr/local/bin/ansible
 python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

abrir ansible.cfg Archivo y búsqueda de inventario de parámetros. Se hace referencia a este parámetro con ansible en tiempo de ejecución para obtener la ruta del archivo de inventario.

$ sudo grep -iw "^#Inventory" /etc/ansible/ansible.cfg
#inventory        = /etc/ansible/hosts

El inventario se muestra de forma predeterminada /etc/ansible/hosts Archivo. abrir hosts Archive y agregue el nombre de host / dirección IP del nodo administrado.

Tengo un mapeo de DNS a IP, así que puse el nombre de DNS en el archivo del host. También puede ingresar la dirección IP.

Archivo de inventario Ansible
Archivo de inventario Ansible

¡Todo está configurado para que nuestra tarea se lleve a cabo en ansible!

Similar a "Hello world" El programa en programación ansible también tiene una tradición, una ping Módulo como primer comando para verificar la conectividad entre el controlador y los nodos administrados.

La ping El módulo intenta llegar a los nodos administrados y verifica si hay un intérprete de Python disponible para usar y responder pong.

$ ansible all -m ping

También puede utilizar el archivo hosts explícitamente con. especificar -i Marcar como se muestra a continuación:

$ ansible all -m ping -i flag <path-to-host-file>
Módulo de ping Ansible
Módulo de ping Ansible

Ahora puedes empezar con el módulo con el que quieres jugar.

Si desea agregar más nodos de controlador, todo lo que tiene que hacer es copiar la clave SSH del nodo del controlador al nuevo nodo y pegar la entrada IP / DNS en el archivo de hosts. Entonces, Ansible puede comenzar a recoger el nodo administrado recién agregado. ¡Tan simple como eso!

Conclusión

En esta guía, discutimos cómo instalar y configurar Ansible en Linux. También le mostramos cómo configurar manualmente un Homelab Ansible de tres nodos.

Existen otras soluciones automatizadas como configurar un laboratorio ansible con Vagabundo o estibador. Cubriremos estos temas en nuestros próximos artículos.

¡Ansible es un tema enorme! Solo cubrimos los conceptos básicos de Ansible. Probar esto documentación oficial de Ansible para obtener más información sobre el uso de Ansible.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba