Training from 20250617

This commit is contained in:
Guillem Hernandez Sola
2025-06-17 13:51:26 +02:00
parent b40e420fbf
commit 5620e1f4dc
14 changed files with 201 additions and 1 deletions

View File

@@ -0,0 +1,9 @@
- name: Prueba de when
hosts: all
become: yes
tasks:
- name: Instalar Apache2 si el sistema operativo es Debian
apt:
name: apache2
state: present
when: ansible_facts['os_family'] == 'Debian'

23
training/facts.yml Normal file
View File

@@ -0,0 +1,23 @@
- name: Mirar los ansible_facts
hosts: all
become: yes
tasks:
- name: Verificar los hechos de Ansible
ansible.builtin.debug:
var: ansible_facts
- name: Mostrar sistema operativo
ansible.builtin.debug:
msg: "El sistema operativo es {{ ansible_facts['os_family'] }}"
- name: Mostrar el nombre del host
ansible.builtin.debug:
msg: "El nombre del host es {{ ansible_facts['nodename'] }}"
- name: Mostrar la versión del kernel
ansible.builtin.debug:
msg: "La versión del kernel es {{ ansible_facts['kernel'] }}"
- name: Mostrar la versión de Ansible
ansible.builtin.debug:
msg: "La versión de Ansible es {{ ansible_version.full }}"

15
training/handlers.yml Normal file
View File

@@ -0,0 +1,15 @@
- name: Prueba de handlers
hosts: all
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

8
training/install-joe.yml Normal file
View File

@@ -0,0 +1,8 @@
- name: Instalar editor Joe
hosts: all
become: yes
tasks:
- name: Instalar Paquete Joe
apt:
name: joe
state: absent

View File

@@ -0,0 +1,21 @@
- name: Instalar Nginx
hosts: all
become: yes
tasks:
- name: Instalar Paquete Nginx
apt:
name: nginx
state: present
- name: Iniciar el servicio Nginx
service:
name: nginx
state: started
enabled: yes
- name: Verificar el estado del servicio Nginx
service_facts:
- name: Mostrar estado del servicio Nginx
debug:
msg: "El servicio Nginx está {{ ansible_facts.services['nginx.service'].state }}"

8
training/inventory Normal file
View File

@@ -0,0 +1,8 @@
[database]
192.168.11.20
[loadbalancer]
192.168.11.30
[webserver]
192.168.11.40

18
training/loops.yml Normal file
View File

@@ -0,0 +1,18 @@
- name: Prueba de multiples usuarios
hosts: all
become: yes
tasks:
- name: Instalar el paquete 'python3-passlib'
apt:
name: python3-passlib
state: present
- name: Crear múltiples usuarios con contraseñas
user:
name: "{{ item }}"
password: "{{ 'password' | password_hash('sha512') }}"
state: present
with_items:
- user1
- user2
- user3

21
training/passlib.yml Normal file
View File

@@ -0,0 +1,21 @@
- name: Passlib
hosts: all
become: yes
tasks:
- name: Install Python3
apt:
pkg:
- python3
- python3-pip
- python3-passlib
become: true
- name: Create a symbolic link from python3 to python
file:
src: /usr/bin/python3
dest: /usr/bin/python
state: link
- name: Set ansible_python_interpreter to use the installed Python
set_fact:
ansible_python_interpreter: /usr/bin/python3

View File

@@ -0,0 +1,3 @@
#Instale un servidor web (Nginx o Apache).
#Copie un archivo de configuración al directorio correspondiente.
#Reinicie el servicio si el archivo de configuración cambia.

View File

@@ -0,0 +1,15 @@
- name: Reiniciar Nginx
hosts: all
become: yes
tasks:
- name: Reiniciar el servicio Nginx
service:
name: nginx
state: restarted
- name: Verificar el estado del servicio Nginx
service_facts:
- name: Mostrar estado del servicio Nginx
debug:
msg: "El servicio Nginx está {{ ansible_facts.services['nginx.service'].state }}"

View File

@@ -0,0 +1,20 @@
- name: Crear usuarios con contraseña en todos los servidores
hosts: all
become: yes
vars:
user_list:
- user1
- user2
- user3
user_password: "password" # Contraseña en texto plano
tasks:
- name: Generar hash de la contraseña en el controlador (local)
ansible.builtin.set_fact:
hashed_password: "{{ user_password | password_hash('sha512') }}"
- name: Crear usuarios con contraseña
ansible.builtin.user:
name: "{{ item }}"
password: "{{ hashed_password }}"
state: present
loop: "{{ user_list }}"

19
training/users.yml Normal file
View File

@@ -0,0 +1,19 @@
- name: Prueba de creación de múltiples usuarios
hosts: all
become: yes
vars:
user_password: "password123" # Contraseña en texto plano
tasks:
- name: Generar hash de la contraseña en el controlador (local)
ansible.builtin.set_fact:
hashed_password: "{{ user_password | password_hash('sha512') }}"
- name: Crear múltiples usuarios con contraseñas
user:
name: "{{ item }}"
password: "{{ hashed_password }}"
state: present
with_items:
- user1
- user2
- user3

20
training/var.yml Normal file
View File

@@ -0,0 +1,20 @@
- name: Variables para probar
hosts: all
become: yes
vars:
ansible_python_interpreter: /usr/bin/python3
app_port: 8080
tasks:
- name: Definir variables de prueba
ansible.builtin.set_fact:
var1: "Valor de la variable 1"
var2: "Valor de la variable 2"
var3: "Valor de la variable 3"
- name: Mostrar las variables definidas
ansible.builtin.debug:
msg:
- "Variable 1: {{ var1 }}"
- "Variable 2: {{ var2 }}"
- "Variable 3: {{ var3 }}"
- "Puerto de la aplicación: {{ app_port }}"