¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Ansible
  3. Iniciarse en Ansible
Extrait - Ansible Administre la configuración de sus servidores y el despliegue de sus aplicaciones
Extractos del libro
Ansible Administre la configuración de sus servidores y el despliegue de sus aplicaciones Volver a la página de compra del libro

Iniciarse en Ansible

Objetivos del capítulo y requisitos

1. Contexto y requisitos

Este capítulo versa sobre la instalación de Ansible y sobre algunos requisitos de seguridad en lo que respecta a SSH.

De ahora en adelante, deberá disponer de algunos requisitos, como por ejemplo:

  • un sistema Linux con un intérprete de Python (al menos en versión 2.7, aunque se recomienda Python 3.5);

  • ser administrador o tener los derechos necesarios para ejecutar comandos en este sistema.

Se puede instalar Ansible en cualquier tipo de sistema Unix del mercado y especialmente en Mac OS X o cualquier otro BSD. Preste atención a los posibles efectos colaterales que podrían manifestarse.

Se puede realizar una instalación de Ansible en Windows utilizando Cygwin o a través del Linux Subsystem de Microsoft. Sin embargo, los resultados pueden variar. Si no tiene otra elección, hay soluciones basadas en máquinas virtuales que podrán ahorrarle algún que otro contratiempo.

En el caso de que tenga dificultades para utilizar máquinas virtuales, puede utilizar otras opciones como, por ejemplo, los contenedores Docker. Esta técnica se tratará en el penúltimo capítulo de este libro.

2. Versión de Python

Desde el 31 de diciembre de 2019, la versión 2 de Python ya no recibe soporte. Por lo tanto, se recomienda encarecidamente que la máquina que controle los despliegues...

Instalación de Ansible

1. Contexto

La instalación de Ansible se puede hacer de distintas maneras:

  • usando la gestión de los paquetes de su sistema;

  • usando la herramienta pip de Python (se puede utilizar esta herramienta combinada con virtualenv);

  • a través del uso de archivos comprimidos que contienen el código fuente de Ansible;

  • o, también, interpretando directamente el código fuente procedente de Git.

2. Instalación detrás de un proxy

Si usted se encuentra detrás de un proxy, tendrá que exportar las variables http_proxy, https_proxy y ftp_proxy usando el valor siguiente: http://mi-proxy:mi-puerto. Si tuviera que identificarse, deberá cambiar la declaración de su proxy por el valor siguiente:  http://login:contrasena@mi-proxy:puerto.

Estas variables son las mismas que utilizan las utilidades apt (Debian), yum (Red Hat) o pip (gestión de paquetes propia de Python). Aquí encontrará los commandos que hay que ejecutar en el terminal para configurar el proxy:

$ export http_proxy=http://proxy:3128 
$ export https_proxy=http://proxy:3128 
$ export ftp_proxy=http://proxy:3128 

3. Instalación a través de paquetes del sistema

Existen dos familias principales de gestión de paquetes para las distribuciones Linux: apt para los derivados de Debian/Ubuntu y yum (RHEL, CentOS o Fedora). 

a. Instalación en Debian/Ubuntu

En Debian, la instalación puede hacerse utilizando apt seguido de la opción install y el nombre del paquete. En el caso de la instalación de Ansible, el comando que se tiene que ejecutar sería:

$ sudo apt install ansible 

Compruebe que la versión que se instalará es lo suficientemente reciente (ver sección Comprobación de la versión de Ansible).

b. Instalación en RHEL, CentOS o Fedora

Usando yum, la instalación se hará en dos etapas:

  • Activación del depósito EPEL (Extra Package Enterprise Linux) :

$ sudo yum install epel-release 
  • Instalación de Ansible:

$ sudo yum install ansible 

En el momento en que se estaba escribiendo este libro, Ansible no se encontraba en los depósitos oficiales de Red Hat, lo que explica su presencia en el depósito...

El protocolo SSH

1. Introducción a SSH

Ansible se ha diseñado principalmente para gestionar máquinas usando el protocolo SSH o a través de comandos ejecutados localmente. También se pueden gestionar otro tipo de máquinas, como por ejemplo sistemas operativos Windows, contenedores Docker o también usando mecanismos de aislamiento (chroot o jail).

Aunque sea posible de utilizar la autenticación por contraseña para conectarse a máquinas Linux, se recomienda encarecidamente utilizar claves SSH. A continuación, se explicará la generación de las claves SSH, así como su propagación a las máquinas que queramos administrar.

2. Clave pública y clave privada

Lo primero que hay que hacer, si todavía no la tiene, es generar una clave. Ésta está compuesta de dos partes: una clave pública y una clave privada. Una propiedad importante es que es muy fácil obtener una clave pública a partir de una clave privada, pero es muy difícil obtener la clave privada a partir de la clave pública.

La clave privada tiene que estar, siempre, protegida y nunca debe compartirse. En efecto, la persona que la obtenga puede conectarse a sus máquinas. La clave pública, sin embargo, puede difundirse ya que solo sirve para dar acceso al servidor.

Esta pareja de claves se puede comparar a un candado y a la llave que abre este candado: el candado abierto representa la clave pública y la llave del candado representa la clave privada. Un candado cerrado protege algo y solamente se puede abrir si tenemos la llave del candado. Es más simple abrir el candado con su llave que romperlo.

images/principe-chiffrement.png

La información está protegida por la clave pública. El resultado solamente se puede obtener con la llave del candado.

Para continuar con esta analogía, cualquier persona puede bloquear una bicicleta con un candado (incluso si no se tiene la llave del mismo). Sin embargo, una vez que se haya cerrado el candado, será más fácil abrirlo con la llave que sin ella.

3. Generación de la clave

La generación de la clave se realiza mediante el comando ssh-keygen. Se pueden utilizar las opciones siguientes:

  • Tipo de clave que queremos crear (rsa o dsa) con -t [rsa|dsa].

  • Ubicación donde se creará la clave con -f <ubicación_clave>.

  • Una passphrase...