Files
startusingansible/training/practica-dia2.yml
Guillem Hernandez Sola 44e5cfe266 Retrocompatibity python 2.7
2025-06-18 09:26:22 +02:00

61 lines
3.1 KiB
YAML

- 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'
#Condición para versiones antinguas para detener Nginx solo si está corriendo
#when: ansible_facts.services['nginx'].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