GNU/Linux >> Tutoriales Linux >  >> Linux

Instalar y configurar Ansible en Linux

Esta guía paso a paso lo guía 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 a través de la cual puede automatizar un número "N" de tareas en su entorno de software. Para saber qué es Ansible y sus funciones, consulte nuestra "Introducción a Ansible" guía.

Obviamente, Ansible está diseñado para la gestión de la configuración a escala. Si su objetivo es aprender y poder recrear su entorno rápidamente, ¡está en el camino correcto!

Ansible es un sin agente arquitectura. Significado:no se ejecutan agentes/procesos ansible en los nodos administrados.

Como ya 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, ejecutará todos los libros de jugadas y los comandos de ansible.
  • Nodos administrados - Lista de hosts que se administrarán mediante ansible.

No es necesario que todos los nodos administrados se ejecuten con la misma versión o tipo de distribución. Puede tener diferentes sabores de Linux como nodos administrados.

La comunicación entre el controlador y los nodos administrados se realizará mediante autenticación basada en clave ssh. .

Esta guía práctica le enseñará cómo configurar Ansible lab en distribuciones de Linux.

Nota:

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

Antes de comenzar con Ansible, permítame mostrarle la representación pictórica de la configuración de mi laboratorio doméstico Ansible.

2. Diagrama arquitectónico para laboratorio ansible de 3 nodos

La siguiente ilustración gráfica le brinda una buena representación pictórica de cómo se verá el laboratorio.

Con fines de demostración, estoy configurando un nodo de controlador en Ubuntu 20.04 y 2 nodos administrados en CentOS 8 y Ubuntu 21.04.

3. Instalar y configurar Ansible en Linux

Primero, veremos cómo configurar el nodo administrado de Ansible en Linux.

3.1. Instalar Ansible en Linux

Dado que Ansible está escrito en Python, su máquina Linux debe tener Python instalado 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 máquina, puede usar los siguientes comandos. El resultado puede variar dependiendo de cómo esté configurado Python en su distribución.

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

Comprobar 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

Puede instalar ansible en Linux de dos formas.

  1. Uso del administrador de paquetes del sistema operativo
  2. Uso de PIP - 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. Según su distribución de Linux, ejecute los siguientes comandos.

Instale Ansible en Arch Linux, EndeavourOS, Manjaro Linux:

$ sudo pacman -S ansible

Debian:

Edite /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

Es posible que su distribución se envíe con una versión obsoleta de Ansible. Si desea instalar una versión actualizada de Ansible en su sistema, puede usar Pip , el administrador de paquetes de python.

3.1.2. Instale Ansible usando Pip

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

Una vez que PIP esté instalado, 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 comprobar la versión de Ansible:

$ ansible --version

Este comando proporciona información sobre dónde se encuentra el archivo de host, el archivo de configuración y el archivo 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 indicó anteriormente, Ansible se comunicará con los nodos administrados mediante ssh protocolo de autenticación.

Crearemos un par de claves ssh y las distribuiremos en todos los nodos administrados. Entonces, siempre que se envíe un comando ansible, se autenticará con los nodos administrados usando estas claves.

3.2.1. Generar par de claves SSH para nodos administrados

Cree 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 usando los comandos:

$ su - ansible
$ ssh-keygen -t rsa

Este comando generará un par de claves SSH.

Ahora distribuye la clave pública a todos los nodos administrados.

Puede usar el ssh-copy-id comando para copiar la clave pública en el nodo de destino.

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

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

Si tiene más nodos, use for loop para copiar la clave ssh a todos los nodos de destino.

Para el propósito de esta guía, tengo 2 nodos administrados y los llamé 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

Ahora inicie sesión en su nodo administrado para verificar si la autenticación basada en claves funciona bien.

$ ssh [email protected]

Ahora la configuración de ansible está completa. Como siguiente paso, se debe crear un archivo de inventario y ejecutar algunos comandos de ansible en los hosts administrados.

3.2.2. Probar la configuración de Ansible

Ansible tiene dos archivos importantes que se requieren para enviar Adhoc o libro de jugadas comandos.

  1. Ansible.cfg - archivo de configuración ansible.
  2. Hosts - Archivo de inventario donde se proporcionan los detalles del host.

Bueno, discuta más en profundidad sobre la configuración y los archivos de inventario en un artículo separado. En el momento de ejecutar el primer comando ansible, solo necesita agregar los nombres de host de sus nodos administrados en el archivo de inventario.

El archivo de configuración de Ansible se encuentra en /etc/ansible/ansible.cfg expediente. También puede obtener este detalle ejecutando la ansible version comando:

$ 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]

Abra ansible.cfg archivo y busque el inventario de parámetros. Ansible hará referencia a este parámetro durante el 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 por defecto apunta a /etc/ansible/hosts expediente. Abrir hosts y agregue el nombre de host/dirección IP del nodo administrado.

Tengo una asignación de DNS a IP, por lo que he dado el nombre de dns en el archivo del host. También puede dar la dirección IP.

¡Todo está configurado para ejecutar nuestra tarea en ansible!

Similar al "Hello world" programa en programación, ansible también tiene la tradición de ejecutar un ping módulo como el primer comando para verificar la conectividad entre el controlador y los nodos administrados.

El ping el módulo intentará llegar a los nodos administrados y verificará si hay algún intérprete de Python disponible para usar y responderá como pong .

$ ansible all -m ping

También puede especificar explícitamente el archivo de hosts usando -i marca como a continuación:

$ ansible all -m ping -i flag <path-to-host-file>

Ahora puedes empezar a jugar con cualquier módulo con el que quieras jugar.

Si desea agregar más nodos de controlador, todo lo que tiene que hacer es copiar la clave SSH del nodo de controlador al nuevo nodo y agregar la entrada de IP/DNS en el archivo del host. Y luego, ansible puede comenzar a recoger el nodo administrado recién agregado. ¡Así de simple!

Conclusión

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

Existen otras soluciones automatizadas, como configurar ansible lab con Vagrant. o Docker . Cubriremos esos temas en nuestros próximos artículos.

¡Ansible es un tema muy amplio! Cubrimos solo los conceptos básicos de Ansible. Consulte la documentación oficial de Ansible para saber más sobre el uso de Ansible.

Leer a continuación:

  • Configuración automatizada de Ansible Lab con Vagrant y Virtualbox en Linux
  • Archivos de configuración e inventario de Ansible

Linux
  1. Cómo instalar y probar Ansible en Linux

  2. Cómo instalar y configurar Ansible en Fedora 35

  3. Cómo instalar y configurar Ansible en Rocky Linux/CentOS 8

  4. Cómo instalar y configurar EMC PowerPath en Linux

  5. 12 pasos para instalar y configurar Alfresco en UNIX/Linux

Cómo instalar y configurar Django en un sistema Linux

Cómo instalar y configurar PrestaShop en el sistema Linux

Cómo instalar y configurar Elasticsearch en el sistema Linux

Cómo instalar y configurar Slack en distribuciones de Linux

Cómo instalar y configurar Perf en distribuciones de Linux

Cómo instalar y configurar Terraform en distribuciones de Linux