Enquanto você pode usar o VARS_FILE, VARS ou incluir_var para configurar variáveis em seus manuais, o módulo set_fact é uma das melhores maneiras de fazer isso, principalmente por causa de sua flexibilidade.
Este tutorial explicará o que é Ansible set_fact, como funciona e como você pode usá -lo.
Entendendo o Ansible set_fact
Diferentemente de outros módulos que permitem definir variáveis Ansible-Think Vars_File, VARS ou Incluir_var-onde você precisa conhecer os valores variáveis de antemão, o módulo Ansible set_facts permite definir variáveis fora do poço, conforme necessário, geralmente em um host -To-hospedeiro.
Variáveis definidas usando set_facts estão disponíveis para execução de manual na mesma peça. No entanto, usando o parâmetro em cache definido como sim, você pode transformar essas variáveis em fatos no cache do fato, tornando-os executáveis através do Playbook Runs-com a precedência do "fato em cache".
Parâmetros Ansible set_fact
Ansible set_fact suporta os seguintes parâmetros:
A seguir, são apresentadas algumas características essenciais do módulo set_fact.
Exemplo de Ansible set_fact
Vejamos alguns exemplos para ilustrar usando o set_fact.
No exemplo abaixo, usamos o set_fact para atribuir um valor específico a uma variável e criar um usuário.
---
- Hosts: todos
tornar verdade
tarefas:
- Nome: Criar usuário.
set_fact:
Nome de usuário: Linuxhint
do utilizador:
Nome: "nome de usuário"
Grupo: "nome de usuário"
concha: /bin /bash
No exemplo acima, usamos o módulo set_fact para criar um usuário em um host remoto.
Outro exemplo é usar o set_fact com condicionais. Por exemplo:
---
- Hosts: todos
tornar verdade
tarefas:
- Nome: Apache
set_fact:
PKG: "Apache2"
Quando: Ansible_distribution == "Debian" ou Ansible_distribution == "Ubuntu"
- Nome: httpd
set_fact:
pkg: "httpd"
Quando: Ansible_distribution == 'Centos' ou Ansible_distribution == 'Red Hat Enterprise Linux'
No manual de exemplo acima, definimos o pacote para Apache2 quando a distribuição é Debian ou Ubuntu e Httpd para Centos e Rehl.
Fechamento
O módulo Ansible set_fact permite adicionar flexibilidade aos seus manuais com base nas informações coletadas do host.
Obrigado pela leitura!