Cómo ejecutar Ansible en una máquina virtual de Ubuntu

En este blog, aprenderemos cómo ejecutar ansible en una máquina virtual ubuntu. También aprenderemos algunos consejos y trucos para que nuestra experiencia con ansible sea más agradable.

Cómo ejecutar Ansible en una máquina virtual de Ubuntu

Introducción

Ansible es una herramienta de administración, implementación y orquestación de configuración. Utiliza SSH para la comunicación entre nodos.

Por lo tanto, no es necesario instalar ningún agente en los nodos. Podemos usar playbooks para escribir procesos de automatización en Ansible.

Esta guía lo ayudará a instalar Ansible en los sistemas Ubuntu 18.04 LTS y 16.04 LTS.

Configuración de Ansible en Ubuntu

Ansible es un sistema de gestión de configuración que automatiza la configuración del servidor, la implementación de aplicaciones y la gestión de tareas.

Es una herramienta simple pero poderosa que puede simplificar enormemente las tareas de administración de la configuración.

En esta guía, le mostraremos cómo instalar Ansible en un ubuntu 18.04 y administre las configuraciones del servidor con él.

Instalación de Ansible en Ubuntu 18.04 Server#

  • Para instalar Ansible en nuestro servidor Ubuntu, primero necesitaremos instalar algunos paquetes de requisitos previos. Podemos hacer esto con el comando apt:
    sudo apt actualizar
    sudo apt install software-propiedades-común
  • A continuación, agregaremos el repositorio de Ansible a nuestra lista de fuentes: sudo apt-add-repositorio ppa:ansible/ansible
  • Pulse ENTER para continuar cuando se le solicite. Finalmente, podemos instalar el propio paquete de Ansible con apto: sudo apt install ansible -y
  • ansible --versión 2.7 debe mostrarse indicando una instalación exitosa

Configuración de cuentas de usuario de Ansible

De forma predeterminada en Ubuntu, solo los usuarios privilegiados (usuarios con acceso a Sudo) pueden ejecutar libros de jugadas Ansibl e.

Sin embargo, para facilitar el uso, es posible que desee ejecutar playbooks como una cuenta de usuario normal en lugar de usar sudo todo el tiempo.

Hay dos formas de lograr esto: puede crear una nueva cuenta de usuario específicamente para ejecutar playbooks o puede usar su cuenta de usuario existente si tiene privilegios de sudo.

En esta guía, le mostraremos cómo configurar ambos métodos para que pueda elegir cuál es el adecuado para sus necesidades.

Ejecutando Ansible en Ubuntu


Ansible es una herramienta de administración de configuración que se utiliza para administrar configuraciones de servidor, implementar aplicaciones y automatizar tareas.

También crearemos un Playbook simple para implementar un sitio web HTML estático. Los playbooks de Ansible están escritos en el Formato de serialización de datos YAML y definen un conjunto de tareas a ejecutar en un host remoto o en un grupo de hosts remotos.

Antes de comenzar, asegúrese de tener Ansible instalado en su sistema local. De lo contrario, puede seguir nuestra guía sobre cómo instalar Ansible en CentOS 7.

Manuales de Ansible


Los playbooks de Ansible son un sistema de configuración y despliegue multinodo. Pueden describir una política que desea que apliquen sus sistemas remotos o un conjunto de pasos en un proceso general de TI.

Si los módulos de Ansible son las herramientas en su caja de herramientas, los playbooks son su caja de herramientas. Y al igual que sus herramientas eléctricas favoritas, los libros de jugadas de Ansible pueden volverse bastante peludos cuando crecen más allá de unas pocas docenas de líneas.

La buena noticia es que existen algunas prácticas recomendadas sólidas que puede seguir para mantener sus playbooks de Ansible limpios, secos y reutilizables. En esta publicación, cubriremos 9 consejos para crear mejores playbooks de Ansible.

  1. Mantenga sus libros de jugadas breves y agradables
    Este puede parecer obvio, pero vale la pena repetirlo: cuanto más corto y simple sea su libro de jugadas, más fácil será de leer y mantener. Los libros de jugadas de un solo propósito de Shoter son más fáciles de solucionar que los monolíticos largos. En caso de duda, divida las tareas relacionadas en libros de jugadas separados e inclúyalos como roles o como importaciones en su libro de jugadas principal.
  2. Escribir tareas idempotentes
    Una tarea idempotente es aquella que tiene el mismo efecto ya sea que la ejecutes una o cien veces. Eso puede parecer algo extraño, pero las tareas idempotentes son importantes porque se pueden ejecutar una y otra vez sin efectos secundarios adversos.
    Por ejemplo, supongamos que tiene una tarea que instala un paquete de software particular en todos sus servidores. Si la tarea es idempotente, ejecutarla varias veces en el mismo servidor tendrá el mismo efecto que ejecutarla una vez: el paquete se instalará (o, si ya estaba instalado, no pasará nada). Por otro lado, si la tarea no es idempotente, ejecutarla de nuevo instalará dos copias del paquete de software (o peor).
  3. Usa Incluye sabiamente
    Los archivos de inclusión le permiten organizar tareas relacionadas en unidades lógicas que pueden reutilizarse en otros libros de jugadas o incluirse directamente en jugadas. Puede pensar en ellos como bloques de construcción para libros de jugadas más grandes.
    Si bien las inclusiones pueden ser muy útiles, deben usarse con moderación: demasiados archivos incluidos pueden hacer que un libro de jugadas sea difícil de seguir. Una buena regla general es usar include solo cuando necesite reutilizar tareas en más de un lugar; si solo incluye tareas en un libro de jugadas, probablemente sea más limpio insertarlas directamente en las jugadas donde se usan
    Funciones de Ansible

    Los roles de Ansible se componen de muchos libros de jugadas, que son similares a los módulos de Puppet. La mayor ventaja de los roles de Ansible es que es mucho más fácil reutilizar el código y programar las tareas. En este capítulo, veremos cómo crear y usar roles de Ansible con ejemplos.

Los roles son la forma de agrupar todos los libros de jugadas relacionados y otros archivos en un solo lugar para que se puedan reutilizar.

Uno puede poner todos los juegos de la instalación de MySQL en un rol y todos los juegos de la instalación de Apache en otro rol.

Todo lo que necesita es llamar a estos roles en site.yml para instalar MySQL y Apache. Como estos dos roles son independientes, se pueden ejecutar en paralelo sin ningún problema, ya que no tienen dependencia entre sí.

galaxia ansible


Si desea instalar una función de Ansible en su máquina virtual Ubuntu, puede usar la herramienta Galaxy CLI. Esta herramienta te permitirá buscar roles, instalarlos e incluso crear los tuyos propios.

Primero, deberá asegurarse de tener instalada la última versión de Ansible. Puede hacer esto ejecutando el siguiente comando:

  • $ sudo apt actualizar
  • $ sudo apt install software-propiedades-común
  • $ sudo apt-add-repository --yes ppa:ansible/ansible
  • $ sudo apt actualizar
  • $ sudo apt instalar ansible

Una vez que Ansible esté instalado, puede comenzar a usar Galaxy CLI. Lo primero que deberá hacer es crear un archivo llamado "requirements.yml" en su directorio de trabajo actual. Este archivo contendrá una lista de todos los roles que desea instalar.

Por ejemplo, si quisiera instalar el rol "nginx", su archivo requirements.yml se vería así:

- src: geerlingguy.nginx versión: v1.0.0

Una vez creado el archivo requirements.yml, puede utilizar el siguiente comando para instalar todas las funciones enumeradas en el archivo:

$ ansible-galaxy install -r requirements.yml

Bóveda de Ansible


Ansible Vault es una función de Ansible que le permite conservar datos confidenciales, como contraseñas o claves privadas, en archivos cifrados, en lugar de texto sin formato en libros de jugadas o roles. Estos archivos de bóveda se pueden distribuir o colocar en el control de código fuente.

Para usar Ansible Vault, debe crear un archivo de bóveda. Esto se puede hacer con el comando de creación de ansible-vault:

$ ansible-bóveda crear myvault.yml

Se le pedirá una contraseña para cifrar el archivo. Una vez que se crea el archivo, puede editarlo como cualquier otro archivo YAML. Cuando haya terminado, puede cifrar el archivo nuevamente con el comando de cifrado de ansible-vault:

$ ansible-vault cifra myvault.yml

El archivo se cifrará con la misma contraseña que utilizó para crearlo. Para editar un archivo cifrado, debe proporcionar la contraseña utilizando el –pedir-pase-bóveda o –opciones de archivo de contraseña de bóveda:

$ ansible-vault edit --ask-vault-pass myvault.yml

Conclusión

Ahora que sabe cómo ejecutar Ansible en una máquina virtual Ubuntu, puede comenzar a automatizar sus tareas de infraestructura.

Si necesita más ayuda, consulte la documentación de Ansible.

Español