Sobes.tech
Middle

Qual é a hierarquia de variáveis em diferentes funções de DevOps?

sobes.tech IA

Resposta da IA

A hierarquia de variáveis no DevOps geralmente refere-se aos sistemas de gestão de configuração, como Ansible, Puppet ou Chef, onde diferentes níveis de definição de variáveis têm prioridades diferentes. No contexto do Ansible, isto é assim:

  1. Extra Vars (a partir da linha de comando com -e)
  2. Lookup Variables (por exemplo, usando {{ lookup(...) }})
  3. Variáveis Reservadas (variáveis predefinidas do Ansible, como hostvars, group_names, inventory_hostname)
  4. Variáveis de Inventário
    • Variáveis de Grupo (group_vars/)
    • Variáveis de Host (host_vars/)
  5. Variáveis de Role (roles/<role_name>/vars/)
  6. Variáveis de Play (vars: no playbook)
  7. Valores Padrão do Role (roles/<role_name>/defaults)
  8. Variáveis de Inventário (do ficheiro de inventário)
    • Variáveis de grupo no inventário
    • Variáveis de host no inventário

Exemplo de definição de variáveis no Ansible para uma role:

---
# roles/my_role/vars/main.yml
my_variable: "valor definido em vars da role"

Exemplo de definição de valores padrão para uma role:

---
# roles/my_role/defaults/main.yml
my_variable: "valor padrão"
another_variable: "valor padrão específico para a role"

Exemplo de uso num playbook:

---
- name: Aplicar my_role
  hosts: meus_servidores
  vars:
    my_variable: "valor definido no playbook"
  roles:
    - my_role

Exemplo de variável de host no inventário:

[meus_servidores]
servidor1 my_variable="valor do host no inventário"
servidor2

Variáveis definidas em níveis superiores nesta hierarquia (por exemplo, Extra Vars) sobrescrevem variáveis definidas em níveis inferiores (por exemplo, Valores Padrão do Role).

Em outras ferramentas, a hierarquia pode variar, mas o princípio geral de prioridade das variáveis, definidas mais próximas do local de uso ou com indicação explícita (como na linha de comando), mantém-se semelhante.