Ampliar nuestro Rol
Ahora que tenemos una estructura de rol básica, ampliemosla para incluir más componentes de un típico rol de Ansible. Agregaremos variables, un manejador (handler) y una plantilla (template).
Primero, agreguemos una variable predeterminada. Crea un archivo main.yml
en el directorio defaults
:
nano defaults/main.yml
Agrega el siguiente contenido:
---
example_variable: "This is a default value"
Esto establece un valor predeterminado para example_variable
, que se puede sobrescribir cuando se utilice el rol.
A continuación, creemos un manejador (handler). Crea un archivo main.yml
en el directorio handlers
:
nano handlers/main.yml
Agrega el siguiente contenido:
---
- name: Restart example service
debug:
msg: "This would restart a service in a real scenario"
En un escenario del mundo real, este manejador podría reiniciar un servicio, pero para este ejemplo, solo estamos imprimiendo un mensaje.
Ahora, creemos una plantilla (template). Crea un archivo llamado example_template.j2
en el directorio templates
:
nano templates/example_template.j2
Agrega el siguiente contenido:
This is an example template.
The value of example_variable is: {{ example_variable }}
Esta plantilla utiliza la sintaxis de Jinja2 para incluir el valor de nuestra example_variable
.
Finalmente, actualicemos nuestro tasks/main.yml
para utilizar estos nuevos componentes:
nano tasks/main.yml
Reemplaza el contenido existente con:
---
- name: Print a message
debug:
msg: "This is a task from our example role!"
- name: Use our variable
debug:
msg: "The value of example_variable is: {{ example_variable }}"
- name: Create a file from our template
template:
src: example_template.j2
dest: /tmp/example_file.txt
notify: Restart example service
Esta lista de tareas actualizada ahora utiliza nuestra variable, crea un archivo a partir de nuestra plantilla y notifica a nuestro manejador (handler).