Variáveis no Ansible: Aprenda a tirar o máximo proveito dessa funcionalidade

Olá, entusiastas do Ansible!
Embora eu geralmente não me apegue a ferramentas devido a experiências passadas, o Ansible é uma exceção notável. A economia de tempo que essa ferramenta poderosa me proporcionou é imensurável, e posso afirmar que devo a ela boa parte dos meus momentos produtivos e tempo de vida. 😅
Hoje vamos explorar o uso das variáveis no Ansible para tornar os nossos playbooks mais flexíveis e dinâmicos.
Começando com Variáveis Básicas
Inicialmente, vamos entender a definição básica de uma variável no contexto do Ansible. O exemplo abaixo ilustra um playbook simples que define uma variável para criar um usuário.
---
- hosts: your_target
vars:
username: user
tasks:
- name: Criando um novo usuário
user:
name: "{{ username }}"
state: present
Neste trecho, username é definido como user e é usado para criar um novo usuário em todos os hosts definidos em your_target.
Expandindo com Variáveis Externas
Mas e se quisermos modificar o username sem alterar o playbook? As variáveis externas entram em cena para proporcionar essa flexibilidade:
ansible-playbook -i your_inventory_file playbook.yml -e "username=newuser"
Aqui, o valor de username é sobrescrito para newuser durante essa execução específica do playbook, proporcionando um alto grau de reusabilidade para nossos scripts.
Explorando Fatos do Ansible
Fatos ou Facts no Ansible são informações sobre os hosts remotos que o Ansible adquire antes de executar tarefas. Eles podem ser usados para implementar lógicas condicionais nos playbooks. Confira o exemplo a seguir:
---
- hosts: your_target
tasks:
- name: Exibindo o hostname
debug:
msg: "O hostname é {{ ansible_hostname }}"
O valor {{ ansible_hostname }} é um fato que exibirá o nome do host durante a execução do playbook.
Utilizando Registros
O Ansible permite armazenar os resultados de uma tarefa em uma variável para usar em tarefas futuras. Vamos ver como isso funciona:
---
- hosts: your_target
tasks:
- name: Criando usuário
user:
name: another_user
state: present
register: user_creation_result
- name: Exibindo resultado da criação do usuário
debug:
msg: "A saída da tarefa anterior é: {{ user_creation_result }}"
O output da tarefa de criação do usuário é armazenado na variável user_creation_result e pode ser usado em tarefas subsequentes.
Este post é dedicado a guiá-lo na utilização de variáveis no Ansible, garantindo que você esteja bem preparado para acompanhar minhas próximas publicações, que explorarão cenários mais práticos.
Referências:
https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html
https://spacelift.io/blog/ansible-variables




