Leia isto em outros idiomas:
 Inglês,
 Inglês,  日本語,
 日本語,  Português do Brasil,
 Português do Brasil,  Francês,
 Francês,  Espanhol.
 Espanhol.
Estendendo nossos playbooks do Exercício 1.3, o foco se volta para a criação e uso de variáveis no Ansible. Você aprenderá a sintaxe para definir e usar variáveis, uma habilidade essencial para criar playbooks dinâmicos e adaptáveis.
Variáveis no Ansible são ferramentas poderosas para tornar seus playbooks flexíveis e reutilizáveis. Elas permitem armazenar e reutilizar valores, tornando seus playbooks mais dinâmicos e adaptáveis.
Uma variável no Ansible é uma representação nomeada de algum dado. Variáveis podem conter valores simples como strings e números, ou dados mais complexos como listas e dicionários.
A criação e uso de variáveis envolvem uma sintaxe específica:
vars de um playbook ou em arquivos separados para projetos maiores."". Esta sintaxe indica ao Ansible para substituí-la pelo valor da variável em tempo de execução.Atualize o playbook system_setup.yml para incluir e usar uma variável:
---
- name: Configuração Básica do Sistema
  hosts: node1
  become: true
  vars:
    user_name: 'Roger'
  tasks:
    - name: Atualizar todos os pacotes relacionados à segurança
      ansible.builtin.dnf:
        name: '*'
        state: latest
        security: true
    - name: Criar um novo usuário
      ansible.builtin.user:
        name: ""
        state: present
        create_home: true
Execute este playbook com ansible-navigator.
Execute o playbook atualizado:
[student@ansible-1 lab_inventory]$ ansible-navigator run system_setup.yml -m stdout
PLAY [Configuração Básica do Sistema] ******************************************************
TASK [Coletando Fatos] *********************************************************
ok: [node1]
TASK [Atualizar todos os pacotes relacionados à segurança] ************************************
ok: [node1]
TASK [Criar um novo usuário] *******************************************************
changed: [node1]
PLAY RECAP *********************************************************************
node1                      : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
Observe como o playbook atualizado mostra um status de alterado na tarefa Criar um novo usuário. O usuário, ‘Roger’, especificado na seção vars, foi criado.
Verifique a criação do usuário via:
[student@ansible-1 lab_inventory]$ ssh node1 id Roger
Aprimore o playbook system_checks.yml para verificar a existência do usuário ‘Roger’ no sistema usando a variável register e a declaração condicional when.
A palavra-chave register no Ansible é usada para capturar a saída de uma tarefa e salvá-la como uma variável.
Atualize o playbook system_checks.yml:
---
- name: Verificações de Configuração do Sistema
  hosts: node1
  become: true
  vars:
    user_name: 'Roger'
  tasks:
    - name: Verificar existência do usuário
      ansible.builtin.command:
        cmd: "id "
      register: user_check
    - name: Relatar status do usuário
      ansible.builtin.debug:
        msg: "O usuário  existe."
      when: user_check.rc == 0
Detalhes do Playbook:
register: user_check: Isso captura a saída do comando id na variável user_check.when: user_check.rc == 0: Esta linha é uma declaração condicional. Ela verifica se o código de retorno (rc) da tarefa anterior (armazenado em user_check) é 0, indicando sucesso. A mensagem de depuração só será exibida se esta condição for atendida.
Esta configuração fornece um exemplo prático de como as variáveis podem ser usadas para controlar o fluxo de tarefas com base nos resultados das etapas anteriores.Execute o playbook de verificações:
[student@ansible-1 lab_inventory]$ ansible-navigator run system_checks.yml -m stdout
PLAY [Verificações de Configuração do Sistema] *********************************************
TASK [Coletando Fatos] *********************************************************
ok: [node1]
TASK [Verificar existência do usuário] ****************************************************
changed: [node1]
TASK [Relatar status do usuário] ******************************************************
ok: [node1] => {
    "msg": "O usuário Roger existe."
}
PLAY RECAP *********************************************************************
node1                      : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
Revise a saída para confirmar que a verificação da existência do usuário está usando corretamente a variável e a lógica condicional.
Navegação
Exercício Anterior - Próximo Exercício
Clique aqui para retornar ao Workshop de Ansible para Red Hat Enterprise Linux