Categorias
Engenheiro Certificado Red Hat Linux

Registrar variáveis no Ansible

Você pode criar variáveis a partir da saída de uma tarefa do Ansible com a palavra-chave register.

Categorias
Sem categoria

Fatos do Ansible

Fatos do Ansible

Os fatos do Ansible são dados relacionados aos seus sistemas remotos, incluindo sistemas operacionais, endereços IP, sistemas de arquivos anexados e muito mais. Você pode acessar esses dados na variável ansible_facts.

Fatos Customizados

O módulo de configuração no Ansible descobre automaticamente um conjunto padrão de fatos sobre cada host. Se você quiser adicionar valores personalizados aos seus fatos, poderá escrever um módulo de fatos personalizados, definir fatos temporários com uma tarefa ansible.builtin.set_fact ou fornecer fatos personalizados permanentes usando o diretório facts.d.

Exemplo:

Primeiro:

  • Crie o diretório /etc/ansible/facts.d caso ele não exista na máquina gerenciada.
  • Crie um arquivo chamado /etc/ansible/facts.d/meusfatos.fact em sua máquina gerenciada. Inclua o conteúdo:
#/etc/ansible/facts.d/meusfatos.fact
[general]
minhavar=1
outravar="test 2"

Segundo:

Desta forma, na próxima coleta de fatos na máquina, teremos a variável com com minhavar e outravar como membros. Acesse estas variáveis com ansible_local:

ansible all -m setup -a "filter=ansible_local"

Resultado:

russell@control1 configdemo]$ ansible ans1 -m setup -a "filter=ansible_local"
ans1 | SUCCESS => {
    "ansible_facts": {
        "ansible_local": {
            "meusfatos": {
                "general": {
                    "minhavar": "1",
                    "outravar": "\"test 2\""
                }
            }
        },
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false
}
Categorias
Engenheiro Certificado Red Hat Linux

Criar variável customizada com set_fact

Módulo do Ansible set_fact:

Este módulo permite definir variáveis associadas ao host atual. Essas variáveis estarão disponíveis para as tarefas subsequentes durante uma execução do playbook ansible através do host em que foram definidas.

No exemplo abaixo, criamos 3 variáveis: one_fact, minha_outra_var, e aumentar_fluxo. Também criamos um dicionário e uma lista.

Exemplo:

- name: Criar variáveis com módulo set_fact:
  set_fact:
    one_fact: "Minha var 1"
    minha_outra_var: "{{ local_var * 2 }}"
    aumentar_fluxo: sim
    meu_dict: {'meuteste': 'aqui', 'outroteste': 'ali'}
    minha_lista: [1,2,3]