He decidido iniciar una serie de tutoriales interesantes y voy a empezar por el de Ansible. Todo esto lo estoy haciendo sobre la marcha y a medida que voy aprendiendo cosas nuevas. Así que es posible que algo pueda estar mal. Pero en este pequeño tutorial aprenderemos a utilizar Ansible y ha aprovisionar servicios en servidores. Pero como siempre que hago alguna cosa en mi blog, quiero dejar algo claro: ¿Soy experto en Ansible?No. ¿Lo seré?Por supuesto 😎 ¿Lo serás? 😎😎 Gracias a mi -más abajo hay un botón de donaciones 😂-.

¿Qué es eso de aprovisionar? Generalmente cuando adquieres un servidor como Syadmin o Developer -o ambas, pero odio decir DevOps- te encuentras con un servidor con Debian o alguna otra distro de GNU/Linux popular -como CentOS o Ubuntu-. Pero ese servidor es «virgen», es decir, no tiene absolutamente nada instalado, únicamente tiene el sistema operativo que viene siendo la «base» del servidor.

¿Qué ocurre cuando instalas servicios? Pues que lo que estás haciendo realmente, pequeño Syadmin sin conocimientos, es aprovisionar el servidor. Y lo aprovisionas de cosas como Nginx, MariaDB, Bind9, Docker, etc. Todo este proceso, el de ejecutar comandos en Shell para instalar mil cosas y configurar otras tantas, lo puedes hacer de una sola tirada gracias a Ansible. ¡Adiós shells Scripts del demonio! –es broma, amo los shell scripts <3–

Lo interesante de Ansible es que es declarativo, por lo que no vamos a dar instrucciones sobre los pasos que hay que seguir para tener ciertos servicios. Es decir, no hacemos un apt-get install apache2, ni modificamos un fichero, ni cambiamos ninguna configuración. Con Ansible, lo que hacemos es pedir lo que queremos al final de todo ese proceso. Por ejemplo, quiero un servidor web con Apache2, que tenga instalado MariaDB y con la versión de PHP 7.1 y que además tenga un FTP con proFTPd en el DocumentRoot de mi web con permisos para el usuario voidnull. ¿Entendéis la diferencia?

Pero esto no es todo, es que con Ansible no es necesario tratar los casos manualmente, es decir, que no es necesario aplicar condiciones en lo que queremos aprovisionar. No tendremos que decir: quiero un servidor web con Apache2 pero si ya está instalado no hagas nada. Ansible es capaz de recopilar automáticamente los hechos (o facts en lenguaje Ansible).

Ansible es modular –oh, que bien suena esta palabra– por lo que significa que si necesitas algo en concreto puedes buscar en su maravillosa web alguna documentación que necesites. Hay módulos para todo, para apt, para pacman, para nginx, para apache, para criptomondeas, paaara toooodo. Y si no encuentras algo, puedes ir a una web comunitaria donde la gente deja sus ficheros de Ansible y sus módulos.

Supongo que tendrás ganas de aprender más sobre Ansible, pero este artículo es únicamente para explicar que es y para que sirve. Pero tengo más información, Ansible está bajo licencia GPLv3, por lo que se trata de Software Libre y eso está mejor que bien. En la gran mayoría de distribuciones de GNU/Linux lo puedes instalar desde el gestor de paquetes porque seguramente esté en repositorios. Ansible únicamente requiere Python y SSH. ¡Lo puedes instalar en local y empezar a jugar!

En la siguiente parte, veremos como instalar Ansible en diferentes distribuciones y empezaremos a ejecutar algunas instrucciones con Ansible.