Apache con AnsibleInstalar Apache con Ansible

En la siguiente entrada vamos a instalar Apache con Ansible, para ello vamos a explicar antes de nada que es un servidor web (Apache).

¿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.

Por Jorge Garcia Garcia

Buenas a todos, mi nombre es Jorge y actualmente trabajo como ingeniero software en un proyecto de tráfico aéreo. Además, estoy cursando el grado de Ingeniería de Computadores en la Universidad de Alcalá de Henares. Termine el grado superior de Administración de Sistemas y como siempre me ha apasionado en tema de la Informática decidí hacer la carrera. Actualmente tengo unos conocimientos bastante amplios respecto a configuración de servidores y creación de páginas web y mi idea es compartir todo con vosotros para que también aprendáis.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *