From d3c5cfe00f724ca7f507b7397046cc40e3236095 Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 11:33:05 +0100 Subject: [PATCH 1/4] added import tasks and import playbooks --- training/handlers.yml | 2 +- training/install-nginx.yml | 35 ++++++++++++++++------------------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/training/handlers.yml b/training/handlers.yml index 02d808c..61b68cb 100644 --- a/training/handlers.yml +++ b/training/handlers.yml @@ -1,5 +1,5 @@ - name: Prueba de handlers - hosts: all + hosts: webserver become: yes tasks: - name: Copiar archivo de configuración diff --git a/training/install-nginx.yml b/training/install-nginx.yml index f845e04..8213dcf 100644 --- a/training/install-nginx.yml +++ b/training/install-nginx.yml @@ -1,22 +1,19 @@ -- name: Instalar Nginx # Instalar y configurar Nginx en servidores Ubuntu - hosts: webserver # Atacar todos los hosts definidos en el inventario - become: yes # Escalar privilegios a root - tasks: # Definir las tareas a ejecutar - - name: Instalar Paquete Nginx # Instalar el paquete Nginx usando apt - apt: - name: nginx # Nombre del paquete a instalar - state: present # Asegurarse de que el paquete esté presente - update_cache: yes # Actualizar la caché de apt antes de la instalación +tasks: # Definir las tareas a ejecutar + - name: Instalar Paquete Nginx # Instalar el paquete Nginx usando apt + apt: + name: nginx # Nombre del paquete a instalar + state: present # Asegurarse de que el paquete esté presente + update_cache: yes # Actualizar la caché de apt antes de la instalación - - name: Iniciar el servicio Nginx # Asegurarse de que el servicio Nginx esté iniciado y habilitado - service: - name: nginx # Nombre del servicio a gestionar - state: started # Iniciar el servicio - enabled: yes # Habilitar el servicio para que inicie al arrancar el sistema + - name: Iniciar el servicio Nginx # Asegurarse de que el servicio Nginx esté iniciado y habilitado + service: + name: nginx # Nombre del servicio a gestionar + state: started # Iniciar el servicio + enabled: yes # Habilitar el servicio para que inicie al arrancar el sistema - - name: Verificar el estado del servicio Nginx # Obtener y mostrar el estado del servicio Nginx - service_facts: + - name: Verificar el estado del servicio Nginx # Obtener y mostrar el estado del servicio Nginx + service_facts: - - name: Mostrar estado del servicio Nginx # Mostrar el estado actual del servicio Nginx - debug: - msg: "El servicio Nginx está {{ ansible_facts.services['nginx.service'].state }}" \ No newline at end of file + - name: Mostrar estado del servicio Nginx # Mostrar el estado actual del servicio Nginx + debug: + msg: "El servicio Nginx está {{ ansible_facts.services['nginx.service'].state }}" \ No newline at end of file From 97b5bd92c6f83b258153d9f9ae1968120247f63f Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 11:34:14 +0100 Subject: [PATCH 2/4] More documentation --- training/handler-nginx.yml | 15 +++++++++++++++ training/import_playbooks.yml | 5 +++++ training/import_tasks.yml | 9 +++++++++ 3 files changed, 29 insertions(+) create mode 100644 training/handler-nginx.yml create mode 100644 training/import_playbooks.yml create mode 100644 training/import_tasks.yml diff --git a/training/handler-nginx.yml b/training/handler-nginx.yml new file mode 100644 index 0000000..61b68cb --- /dev/null +++ b/training/handler-nginx.yml @@ -0,0 +1,15 @@ +- name: Prueba de handlers + hosts: webserver + become: yes + tasks: + - name: Copiar archivo de configuración + copy: + src: nginx.conf + dest: /etc/nginx/nginx.conf + notify: + - Reiniciar Nginx + handlers: + - name: Reiniciar Nginx + service: + name: nginx + state: restarted \ No newline at end of file diff --git a/training/import_playbooks.yml b/training/import_playbooks.yml new file mode 100644 index 0000000..d5df768 --- /dev/null +++ b/training/import_playbooks.yml @@ -0,0 +1,5 @@ +# import_playbook soporta handlers correctamente. +# Por lo tanto, este playbook importa otros playbooks que contienen handlers. +- import_playbook: install-nginx.yml +- import_playbook: handler-nginx.yml +- import_playbook: uninstall-nginx.yml \ No newline at end of file diff --git a/training/import_tasks.yml b/training/import_tasks.yml new file mode 100644 index 0000000..f74c202 --- /dev/null +++ b/training/import_tasks.yml @@ -0,0 +1,9 @@ +# Solo admite tasks y no soporte handlers correctamente. +# Por lo tanto, este playbook importa otros playbooks que contienen solo tasks. +- name: gestiones nginx + hosts: webserver + become: yes + tasks: + - import_task: nginx.yml + - import_task: nginx-handlers.yml + - import_task: uninstall-nginx.yml \ No newline at end of file From 5a40a3d3601d342255ed6a07163758a78a442169 Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 11:37:55 +0100 Subject: [PATCH 3/4] SAve all --- training/install-nginx.yml | 35 +++++++++++++++++++---------------- training/uninstall-nginx.yml | 3 +-- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/training/install-nginx.yml b/training/install-nginx.yml index 8213dcf..f845e04 100644 --- a/training/install-nginx.yml +++ b/training/install-nginx.yml @@ -1,19 +1,22 @@ -tasks: # Definir las tareas a ejecutar - - name: Instalar Paquete Nginx # Instalar el paquete Nginx usando apt - apt: - name: nginx # Nombre del paquete a instalar - state: present # Asegurarse de que el paquete esté presente - update_cache: yes # Actualizar la caché de apt antes de la instalación +- name: Instalar Nginx # Instalar y configurar Nginx en servidores Ubuntu + hosts: webserver # Atacar todos los hosts definidos en el inventario + become: yes # Escalar privilegios a root + tasks: # Definir las tareas a ejecutar + - name: Instalar Paquete Nginx # Instalar el paquete Nginx usando apt + apt: + name: nginx # Nombre del paquete a instalar + state: present # Asegurarse de que el paquete esté presente + update_cache: yes # Actualizar la caché de apt antes de la instalación - - name: Iniciar el servicio Nginx # Asegurarse de que el servicio Nginx esté iniciado y habilitado - service: - name: nginx # Nombre del servicio a gestionar - state: started # Iniciar el servicio - enabled: yes # Habilitar el servicio para que inicie al arrancar el sistema + - name: Iniciar el servicio Nginx # Asegurarse de que el servicio Nginx esté iniciado y habilitado + service: + name: nginx # Nombre del servicio a gestionar + state: started # Iniciar el servicio + enabled: yes # Habilitar el servicio para que inicie al arrancar el sistema - - name: Verificar el estado del servicio Nginx # Obtener y mostrar el estado del servicio Nginx - service_facts: + - name: Verificar el estado del servicio Nginx # Obtener y mostrar el estado del servicio Nginx + service_facts: - - name: Mostrar estado del servicio Nginx # Mostrar el estado actual del servicio Nginx - debug: - msg: "El servicio Nginx está {{ ansible_facts.services['nginx.service'].state }}" \ No newline at end of file + - name: Mostrar estado del servicio Nginx # Mostrar el estado actual del servicio Nginx + debug: + msg: "El servicio Nginx está {{ ansible_facts.services['nginx.service'].state }}" \ No newline at end of file diff --git a/training/uninstall-nginx.yml b/training/uninstall-nginx.yml index 42c39ec..31b1a45 100644 --- a/training/uninstall-nginx.yml +++ b/training/uninstall-nginx.yml @@ -9,5 +9,4 @@ - name: Desinstalar Paquete Nginx # Desinstalar el paquete Nginx usando apt apt: - name: nginx # Nombre del paquete a desinstalar - state: absent # Asegurarse de que el paquete esté ausente \ No newline at end of file + name: nginx # Nombre del paquete a desinstalar \ No newline at end of file From 6bd6a081a782655fa451264ceab99b76f28e1c2d Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 11:49:13 +0100 Subject: [PATCH 4/4] float problem solved --- training/when.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 training/when.yml diff --git a/training/when.yml b/training/when.yml new file mode 100644 index 0000000..ad6ea06 --- /dev/null +++ b/training/when.yml @@ -0,0 +1,21 @@ +- name: Instala Nginx cuando la maquina tenga la ip 192.168.11.40 + hosts: all + become: yes + tasks: + - name: Obtener la dirección IP de la interfaz eth1 + command: ip addr show eth1 + register: ip_output + + - name: Extraer la dirección IP de la salida del comando + set_fact: + ip_address: "{{ ip_output.stdout | regex_search('inet (\\d+\\.\\d+\\.\\d+\\.\\d+)', '\\1') }}" + + - name: Imprimir la dirección IP obtenida + debug: + msg: "La dirección IP de eth1 es {{ ip_address }}" + + - name: Instalar Nginx si la IP es 192.168.11.40 + apt: + name: nginx + state: present + when: ip_address == ['192.168.11.40'] \ No newline at end of file