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]

Categorias
Engenheiro Certificado Red Hat Linux

Ansible Tags

Se você tiver um playbook grande, pode ser útil executar apenas partes específicas dele em vez de executar o playbook inteiro. Você pode fazer isso com as tags Ansible. Para usar tags para executar ou ignorar tarefas selecionadas é um processo de duas etapas:

Primeiro:

Adicione tags às suas tarefas, individualmente ou com herança de marcas de um bloco, reprodução, função ou importação.
Exemplo:

#meuplaybook.yaml
- name: Instalar ntp
  yum:
    name: ntp
    state: present
  tags: debug

Segundo: Selecione ou ignore tags ao executar o playbook.

ansible-playbook meuplaybook.yaml --tags debug