Cómo instalar y configurar la herramienta de automatización Ansible para la gestión de TI - Parte 1


Ansible es un potente software de automatización de código abierto para configurar, administrar e implementar aplicaciones de software en los nodos sin tiempo de inactividad con solo usar SSH. Hoy en día, la mayoría de las herramientas de automatización de TI se ejecutan como un agente en un host remoto, pero ansible solo necesita una conexión SSH y Python (2.4 o posterior) para ser instalado en los nodos remotos para realizar su acción.

Hay muchas herramientas de automatización similares disponibles como Puppet, Capistrano, Chef, Salt, Space Walk, etc., pero Ansible se clasifica en dos tipos de servidor: máquinas de control y nodos.

La máquina de control, donde está instalado Ansible y los nodos son administrados por esta máquina de control a través de SSH. La ubicación de los nodos se especifica controlando la máquina a través de su inventario.

La máquina de control (Ansible) implementa módulos en los nodos que utilizan el protocolo SSH y estos módulos se almacenan temporalmente en nodos remotos y se comunican con la máquina Ansible a través de una conexión JSON sobre la salida estándar.

Ansible no tiene agentes, lo que significa que no es necesario instalar ningún agente en nodos remotos, por lo que significa que no hay ningún demonio o programa en segundo plano que se esté ejecutando para Ansible, cuando no está administrando ningún nodo.

Ansible puede manejar cientos de nodos desde un solo sistema a través de una conexión SSH y toda la operación se puede manejar y ejecutar con un solo comando "ansible". Pero, en algunos casos, en los que requirió ejecutar varios comandos para una implementación, aquí podemos crear libros de jugadas.

Los libros de jugadas son un conjunto de comandos que pueden realizar múltiples tareas y cada libro de jugadas está en formato de archivo YAML.

Ansible se puede utilizar en la infraestructura de TI para administrar e implementar aplicaciones de software en nodos remotos. Por ejemplo, digamos que necesita implementar un solo software o software múltiple en cientos de nodos con un solo comando, aquí ansible entra en escena, con la ayuda de Ansible puede implementar tantas como aplicaciones en muchos nodos con un solo comando, pero debe tener un poco de conocimiento de programación para comprender los scripts ansible.

Hemos compilado una serie sobre Ansible, titulada "Preparación para la implementación de su infraestructura de TI con la herramienta de automatización de TI de Ansible", a través de las partes 1-4 y cubre los siguientes temas.

En este artículo, le mostraremos cómo instalar 'Ansible' en los sistemas RHEL/CentOS 7/6, Fedora 21-19, Ubuntu 14.10-13.04 y Debian 7/6 y también repasaremos algunos conceptos básicos sobre cómo administrar un servidor mediante la instalación de paquetes, la aplicación de actualizaciones y mucho más, desde básico hasta profesional.

  1. Sistema operativo : RHEL/CentOS/Fedora y Ubuntu/Debian/Linux Mint
  2. Jinja2 : un motor de plantillas independiente moderno, rápido y fácil de usar para Python.
  3. PyYAML : un analizador y emisor YAML para el lenguaje de programación Python.
  4. parmiko : una biblioteca de canales SSHv2 nativa de Python.
  5. httplib2 : una biblioteca cliente HTTP completa.
  6. sshpass : autenticación de contraseña ssh no interactiva.

Operating System :	Linux Mint 17.1 Rebecca
IP Address	 :	192.168.0.254
Host-name	 :	tecmint.instrcutor.com
User		 :	tecmint
Node 1: 192.168.0.112
Node 2: 192.168.0.113
Node 3: 192.168.0.114

Paso 1: Instalación de Controlling Machine - Ansible

1. Antes de instalar "Ansible" en el servidor, primero verifiquemos los detalles del servidor, como el nombre de host y la dirección IP. Inicie sesión en el servidor como usuario raíz y ejecute el siguiente comando para confirmar la configuración del sistema que vamos a utilizar para esta configuración.

# sudo ifconfig | grep inet

2. Una vez que confirme la configuración de su sistema, es el momento de instalar el software "Ansible" en el sistema.

Aquí vamos a utilizar el repositorio oficial de Ansible PPA en el sistema, simplemente ejecute los siguientes comandos para agregar el repositorio.

$ sudo apt-add-repository ppa:ansible/ansible -y
$ sudo apt-get update && sudo apt-get install ansible -y

Desafortunadamente, no hay un repositorio oficial de Ansible para los clones basados en RedHat, pero podemos instalar Ansible habilitando el repositorio epel en RHEL/CentOS 6, 7 y las distribuciones de fedora actualmente soportadas.

Los usuarios de Fedora pueden instalar Ansible directamente a través del repositorio predeterminado, pero si está utilizando RHEL/CentOS 6, 7, debe habilitar el repositorio EPEL.

Después de configurar el repositorio de epel, puede instalar Ansible usando el siguiente comando.

$ sudo yum install ansible -y

Después de instalarlo correctamente, puede verificar la versión ejecutando el siguiente comando.

# ansible --version

Paso 2: preparación de claves SSH para hosts remotos

4. Para realizar cualquier implementación o administración desde el host local al host remoto, primero necesitamos crear y copiar las claves ssh al host remoto. En cada host remoto habrá una cuenta de usuario tecmint (en su caso puede ser un usuario diferente).

Primero, creemos una clave SSH usando el siguiente comando y copiemos la clave en los hosts remotos.

# ssh-keygen -t rsa -b 4096 -C "[email protected]"

5. Después de crear la clave SSH con éxito, ahora copie la clave creada en los tres servidores remotos.

# ssh-copy-id [email protected]
# ssh-copy-id [email protected]
# ssh-copy-id [email protected]

6. Después de copiar todas las claves SSH al host remoto, ahora realice una autenticación de clave ssh en todos los hosts remotos para verificar si la autenticación funciona o no.

$ ssh [email protected]
$ ssh [email protected]
$ ssh [email protected]