Expandindo Nossa Role
Agora que temos uma estrutura de role básica, vamos expandi-la para incluir mais componentes de uma Ansible Role típica. Adicionaremos variáveis, um handler e um template.
Primeiro, vamos adicionar uma variável padrão. Crie um arquivo main.yml no diretório defaults:
nano defaults/main.yml
Adicione o seguinte conteúdo:
---
example_variable: "This is a default value"
Isso define um valor padrão para example_variable, que pode ser substituído quando a role for usada.
Em seguida, vamos criar um handler. Crie um arquivo main.yml no diretório handlers:
nano handlers/main.yml
Adicione o seguinte conteúdo:
---
- name: Restart example service
debug:
msg: "This would restart a service in a real scenario"
Em um cenário real, este handler pode reiniciar um serviço, mas para este exemplo, estamos apenas imprimindo uma mensagem.
Agora, vamos criar um template. Crie um arquivo chamado example_template.j2 no diretório templates:
nano templates/example_template.j2
Adicione o seguinte conteúdo:
This is an example template.
The value of example_variable is: {{ example_variable }}
Este template usa a sintaxe Jinja2 para incluir o valor de nossa example_variable.
Finalmente, vamos atualizar nosso tasks/main.yml para usar esses novos componentes:
nano tasks/main.yml
Substitua o conteúdo existente por:
---
- 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 tarefas atualizada agora usa nossa variável, cria um arquivo a partir de nosso template e notifica nosso handler.