En la siguiente entrada vamos a instalar Apache con Ansible, para ello vamos a explicar antes de nada que es un servidor web (Apache).
Tabla de Contenidos
¿Qué es Apache?
Apache se trata del servidor web por excelencia a día de hoy. Es decir, a nivel mundial es el mas utilizado para publicar cualquier pagina web.
Antes de empezar a instalar Apache tenemos que instalar Ansible en nuestro equipo asique manos a la obra.
Instalación de Ansible
Ansible es un software que nos permite automatizar la gestión de configuraciones y el despliegue de aplicaciones. Tenemos que instalarlo en la máquina que nos servirá como nodo de control.
En resumen, Ansible nos permite controlar equipos clientes desde una misma máquina.
Empecemos con la instalación:
Desde el nodo de control ejecutamos el siguiente comando:
sudo apt-add-repository ppa:ansible/ansible
Cuando lo pida pulsar «ENTER».
Lo siguiente será ejecutar un update de los paquetes del equipo:
sudo apt update
Después de actualizar los paquetes lo instalamos:
sudo apt install ansible
Con esto ya tendríamos instalado Ansible. A continuación explicaremos cómo agregar estos hosts para poder controlarlos.
Configuración del archivo hosts
El archivo hosts contiene la información de los equipos que podemos administrar con Ansible. Podemos añadir desde uno a cientos de equipos para controlarlos desde el «Manager» (Nodo de control)
Para editar el contenido del fichero host en Ansible abriremos el archivo con nuestro editor de textos favorito:
sudo nano /etc/ansible/hosts
Una vez abierto al final del todo agregaremos las siguientes lineas:
[apache]
10.0.123.3
10.0.123.4
Donde [apache] es el nombre del grupo que le daremos a nuestras máquinas y debajo las direcciones IPs de cada una.
Por último configuraremos nuestro equipo «Manager» (Donde tenemos instalado Ansible) para que utilice la clave privada rsa en sus conexiones.
ssh-agent bash
ssh-add /home/vagrant/.ssh/id_rsa
Tiene que quedar de la siguiente manera:
Probando la conexión
Ahora que tenemos todo instalado y configurado probaremos que podemos conectarnos mediante ssh a nuestros clientes.
ssh vagrant@10.0.123.3
ssh vagrant@10.0.123.4
También podemos verificar que tenemos conexión ejecutando el módulo «ping» desde el manager. Para esto utilizaremos la opción -m seguido del nombre del modulo, en este caso ping.
ansible apache -m ping
- «Pong» lo devuelve en caso de éxito. Es decir, intenta conectarse al host remoto y verifica que tiene la versión de Python utilizable, en caso de éxito devuelve un «pong».
Instalar Apache
Una vez tenemos instado Ansible empezamos con la instalación de Apache. Para ello creamos un nuevo playbook con la configuración necesaria para darle un click e instalarlo.
Un playbook es un fichero que ejecuta las funciones de configuración e implementación de Ansible.
Para ello vamos a nuestro directorio /etc/ansible y creamos un nuevo archivo con el nombre de: apache.yml
sudo nano /etc/ansible/apache.yml
Añadiremos lo siguiente:
---
- hosts: apache
remote_user: vagrant
become: yes
become_method: sudo
tasks:
- name: install apache2
apt: name=apache2 update_cache=yes state=latest
Atención: Si copiais y pegais el texto y da error escribirlo a mano. Es posible que no quede bien tabulado y de error por algún espacio.
Finalmente nos posicionamos en la carpeta donde tenemos el archivo: apache.yml y lo ejecutamos de la siguiente forma:
ansible-playbook apache.yml
Ya tenemos instalado nuestro servidor apache en los dos host que tenemos. Si accedemos desde un navegador web a cualquiera de las dos direcciones IPs veremos la pantalla por defecto de Apache2.
Finalmente me queda deciros que los ficheros de configuración se han instalado en: /etc/apache2 por lo que si necesitamos realizar un cambio en la configuración (de puertos por ejemplo) tenemos que acceder a esos directorios.