Sobes.tech
Junior

Nomeie as formas de atribuição de variáveis no Ansible.

sobes.tech IA

Resposta da IA

As variáveis no Ansible podem ser definidas de várias formas:

  • Ficheiros de inventário: em ficheiros hosts ou em ficheiros separados nos diretórios group_vars e host_vars.
  • Linha de comando: usando a opção --extra-vars ou -e.
  • Playbooks: nas secções vars, vars_files, include_vars.
  • Roles: nos diretórios vars ou através de parâmetros ao chamar o role.
  • Ficheiros de configuração do Ansible: em ansible.cfg, embora não seja recomendado para valores específicos.
  • Inventário dinâmico: através de scripts que geram inventário e variáveis em tempo de execução.
  • Vaults: para armazenar dados secretos.

Prioridade de atribuição de variáveis no Ansible do mais baixo para o mais alto:

  1. ansible.cfg
  2. Ficheiros de inventário (host_vars, group_vars)
  3. Roles (de default, depois de vars)
  4. Secção vars no playbook
  5. Variáveis passadas via linha de comando

Exemplo de atribuição de variável no inventário:

# inventory.ini
[webservers]
web1 ansible_host=192.168.1.100

[webservers:vars]
http_port=80

Exemplo de atribuição de variável no playbook:

# playbook.yml
---
- name: Configurar servidor web
  hosts: webservers
  vars:
    greeting: "Hello, World!"
  tasks:
    - name: Imprimir saudação
      debug:
        msg: "{{ greeting }}"

Exemplo de atribuição de variável via linha de comando:

ansible-playbook playbook.yml -e "user=admin"