Leia isto em outros idiomas:
Inglês, 日本語, Português do Brasil, Francês, 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