GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Ansible en Ubuntu 20.04 LTS

Configurar e implementar aplicaciones en un solo servidor suele ser una tarea sencilla. Sin embargo, en un entorno de TI complejo con varios servidores, esta puede ser una tarea desalentadora y que requiere mucho tiempo. Desarrollado y mantenido por RedHat, Ansible es una herramienta de aprovisionamiento de software y configuración de servidor de código abierto que simplifica la implementación de aplicaciones y la gestión de la configuración. Quita el peso de los equipos de operaciones de TI y automatiza la configuración de servidores y la implementación de aplicaciones de una manera simple y efectiva.

En comparación con sus homólogos, como chef y puppet, Ansible es la herramienta más utilizada, ya que no requiere que un agente se comunique con hosts remotos. Ansible aprovecha el protocolo SSH para comunicarse con objetivos remotos y, al hacerlo, los recursos de CPU de los hosts remotos no se ven afectados.

Configuración de Ansible Lab

Para nuestro entorno de prueba, tenemos dos nodos:el nodo de control donde se instalará Ansible y el host remoto que se configurará desde el nodo de control de Ansible:

Nodo de control de Ansible IP 192.168.2.101 Ubuntu 20.04

Host remoto IP 192.168.2.104 Ubuntu 20.04

Además, asegúrese de tener un usuario sudo configurado en el nodo de control de Ansible y que el demonio SSH se está ejecutando en ambos nodos.

Sin más preámbulos, veamos cómo instalar Ansible en Ubuntu 20.04

Paso 1:Instalar Ansible

De inmediato, inicie sesión en el servidor maestro de Ansible e instale Ansible como el usuario sudo de la siguiente manera.

$ sudo apt install ansible

Esto instala Ansible junto con una gran cantidad de paquetes de Python3 que son esenciales para que Ansible se ejecute sin problemas.

Una vez instalada, puede confirmar la versión de Ansible como se muestra.

La salida proporciona información extensa. Muestra la versión de Ansible, en este caso, Ansible 2.9.6, el módulo y la ruta del ejecutable de Ansible, así como la versión de Python instalada en su sistema.

El archivo de configuración:ansible.cfg – es el archivo de configuración de Ansible ubicado en /etc/ansible directorio. La configuración determina cómo Ansible se ejecuta e interactúa con clientes remotos. Además, el directorio contiene un archivo de inventario denominado hosts. Aquí es donde se definen los hosts remotos o administrados. A medida que avancemos en este tutorial, definiremos el host remoto en este archivo de inventario.

Paso 2:Configure el inicio de sesión SSH sin contraseña

El protocolo SSH proporciona dos métodos de autenticación:contraseña y autenticación de clave pública/privada. Usando claves SSH, vamos a configurar un método de inicio de sesión ssh sin contraseña para proporcionar una forma más segura y conveniente de interactuar con el host remoto. El método de inicio de sesión SSH sin contraseña proporciona una manera perfecta de interactuar con el host, ya que no se nos pedirá que proporcionemos una contraseña cuando ejecutemos archivos de playbook.

Para configurar el inicio de sesión SSH sin contraseña, primero vamos a generar el par de claves SSH como se muestra:

$ ssh-keygen

Presione ENTER hasta el final para aceptar las sugerencias predeterminadas.

El par de claves SSH incluye una clave pública y una privada. Tenemos el id_rsa que es la clave privada. Además, tenemos el id_rsa.pub cuál es la clave pública.

A continuación, vamos a copiar la clave pública en el host remoto usando el usuario raíz como usuario del host remoto.

NOTA

Antes de copiar el archivo de clave pública ssh, configuraremos el usuario remoto en el archivo de configuración de Ansible como se muestra.

$ sudo vim /etc/ansible/ansible.cfg

Configure el usuario remoto como root.

remote_user=root

Guarde el archivo.

A continuación, diríjase al host remoto y habilite el inicio de sesión raíz remoto editando /etc/ssh/ssh_config archivo.

$ sudo vim /etc/ssh/ssh_config

Agregue la línea a continuación

PermitRootLogin yes

Una vez más, guarde y salga.

Ahora podemos proceder y copiar la clave pública SSH al host remoto como se muestra.

$ ssh-copy-id [email protected]

Si está iniciando sesión por primera vez como usuario raíz, recibirá el aviso como se muestra en la imagen a continuación. Simplemente escriba 'sí' para continuar con la conexión. Una vez que proporcione la contraseña raíz del host remoto, la clave SSH se agregará al directorio de inicio raíz.

Para inicios de sesión posteriores, no se le pedirá que proporcione una contraseña. Para verificar esto, salga del host remoto e intente iniciar sesión una vez más.

$ ssh [email protected]

Esto lo lleva automáticamente al shell del host remoto como se muestra.

¡Perfecto! Nuestra configuración de inicio de sesión SSH sin contraseña está completa. Ahora crearemos un archivo de libro de jugadas que instalará el servidor web Apache.

Paso 3:agregue el host remoto en el archivo de configuración de Ansible

A continuación, definiremos nuestro host remoto en el archivo de inventario de Ansible que, de forma predeterminada, es /etc/ansible/hosts expediente. Entonces, abre el archivo.

 $ sudo vim /etc/ansible/hosts

El archivo aloja está estructurado en formato INI. Vamos a agregar la dirección IP de nuestro host en servidores web nombre del grupo.

[webservers]
192.168.2.104

Guarde el archivo de inventario y cierre. Para verificar los hosts definidos en el archivo de inventario, ejecute:

 $ ansible webservers --list-hosts

Alternativamente, para verificar todos los hosts en todos los grupos de hosts, ejecute:

 $ ansible all --list-hosts

Ahora vamos a probar la presencia del módulo Ansible Python en el host remoto.

 $ ansible -m ping webservers

NOTA:

El ping módulo no es un comando ping ICMP. Es solo una prueba trivial para verificar si el módulo Python3 está instalado y la presencia de SSH.

El siguiente resultado muestra que el comando fue exitoso. El resultado también muestra la IP del host remoto definido en los servidores web. grupo. Si tiene varios hosts definidos en varios grupos, use todos opción.

 $ ansible -m ping all

Paso 4:Cree un archivo de guía para configurar el host remoto

Con el host remoto definido, ahora vamos a crear un archivo de libro de jugadas para instalar el servidor web Apache. Un archivo de playbook es un archivo YAML en Ansible que estipula las tareas que se llevarán a cabo en el host remoto.

 $ sudo vim /etc/ansible/apache.yml

El archivo del libro de jugadas se define a continuación. Tenga en cuenta que el archivo comienza con 3 guiones (-). Además, tome nota de las muescas.

Por último, ejecute el archivo del libro de jugadas de la siguiente manera.

$ ansible-playbook /etc/ansible/apache.yml

Durante el tiempo de ejecución, el libro de jugadas lleva a cabo las tareas meticulosamente y muestra cada acción en la terminal. Instala el servidor web Apache e inicia el servicio.

Para confirmar que el servidor web se instaló correctamente, inicie un navegador y explore la IP del host remoto como se muestra:

http://server-ip/

Resumen

Ansible es una herramienta de automatización ampliamente utilizada en DevOps y utilizada por miles de desarrolladores y administradores de sistemas para configurar e implementar aplicaciones en servidores. Ahorra tiempo y minimiza el esfuerzo necesario para manejar una multitud de servidores en una infraestructura de TI compleja. Esperamos que pueda instalar y configurar cómodamente Ansible en Ubuntu 20.04.


Ubuntu
  1. Cómo instalar Docker en Ubuntu 22.04/20.04 LTS

  2. Cómo instalar PlayOnLinux en Ubuntu 20.04 LTS

  3. Cómo instalar MariaDB en Ubuntu 20.04 LTS

  4. Cómo instalar y configurar Ansible en Ubuntu 18.04 LTS

  5. Cómo instalar Ansible en Ubuntu 18.04 LTS

Cómo instalar Go en Ubuntu 22.04 LTS

Cómo instalar TeamViewer en Ubuntu 16.04 LTS

Cómo instalar Go en Ubuntu 18.04 LTS

Cómo instalar TeamViewer en Ubuntu 18.04 LTS

Cómo instalar Go en Ubuntu 20.04 LTS

Cómo instalar Chrome Remote Desktop en Ubuntu 20.04 LTS