- name: Práctica Día 2 #Instalación y Configuración de Servidor Web hosts: all #Todos los hosts del inventario become: yes #Para ejecutar tareas con privilegios elevados tasks: #Vamos a parar Nginx si está corriendo - name: Comprueba el estado de Nginx ansible.builtin.service_facts: #Recopila información sobre los servicios - name: Detener Nginx si está activo ansible.builtin.service: name: nginx state: stopped when: ansible_facts.services['nginx.service'].state == 'running' #Instalar un servidor web (Apache2). - name: Instalación de Apache2, depenencias y PHP ansible.builtin.package: name: "{{ item }}" #Nombre del paquete a instalar state: present #Asegura que el paquete esté instalado with_items: #Itera sobre una lista de paquetes - apache2 #Servidor web Apache - apache2-utils #Utilidades de Apache - libapache2-mod-php #Módulo de PHP para Apache - mariadb-client #Cliente de base de datos MariaDB - mariadb-server #Servidor de base de datos MariaDB - php #Paquete PHP - php-curl #Extensión PHP para cURL - php-gd #Extensión PHP para gráficos y manipulación de imágenes - php-mbstring #Extensión PHP para manejo de cadenas multibyte - php-memcached #Extensión PHP para Memcached - php-mysql #Extensión PHP para MySQL - php-xml #Extensión PHP para XML - php-zip #Extensión PHP para manejo de archivos ZIP #Asegurar de que el servicio de Apache2 està corriendo y habilitado. - name: Asegurar que Apache2 está corriendo ansible.builtin.service: name: apache2 #Nombre del servicio a gestionar state: started #Asegura que el servicio esté en ejecución enabled: yes #Habilita el servicio para que se inicie al arrancar el sistema #Copia el archivo de configuración hosts de Apache2 al directorio correspondiente - name: Copiar archivo de configuración de hosts de Apache2 ansible.builtin.copy: src: hosts.conf #Ruta al archivo de configuración local dest: /etc/apache2/sites-available/000-default.conf #Ruta de destino en el servidor owner: www-data #Propietario del archivo group: www-data #Grupo del archivo mode: '0644' #Permisos del archivo notify: - Reiniciar Apache2 #Notifica a la tarea de reinicio de Apache2 si este archivo cambia #Habilita el sitio de Apache2 - name: Habilitar el sitio de Apache2 ansible.builtin.shell: #Comando para habilitar el sitio de Apache2 cmd: a2ensite 000-default.conf #Comando para habilitar el sitio #Reinicie el servicio si el archivo de configuración cambia. handlers: - name: Reiniciar Apache2 ansible.builtin.service: name: apache2 #Nombre del servicio a reiniciar state: restarted #Reinicia el servicio when: ansible_facts.services['apache2.service'].state == 'running' #Solo si el servicio está corriendo