Skip to main content

Command Palette

Search for a command to run...

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

Updated
2 min read
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

More from this blog

ricardotenv

16 posts