61 lines
3.1 KiB
YAML
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 |