Mentre è possibile utilizzare vars_file, vars o includere_var per impostare variabili nei tuoi playbook, il modulo set_fact è uno dei modi migliori per farlo, principalmente per la sua flessibilità.
Questo tutorial spiegherà cos'è ansible set_fact, come funziona e come puoi usarlo.
Comprensione di ansible set_fact
A differenza di altri moduli che consentono di impostare le variabili ansible-pensano vars_file, vars o includono_var-dove è necessario conoscere i valori delle variabili in anticipo, il modulo Ansible set_facts consente di impostare le variabili fuori dal cuff come richiesto, spesso su un host -s-host.
Le variabili impostate utilizzando set_fact sono disponibili per l'esecuzione del playbook all'interno della stessa riproduzione. Tuttavia, utilizzando il parametro memorizzazione nella caChable impostata su Sì, è possibile trasformare queste variabili in fatti nella cache dei fatti, rendendole eseguibili tra le corse di playbook con la precedenza del "fatto memorizzata nella cache".
Parametri ansible set_fact
Ansible set_fact supporta i seguenti parametri:
Di seguito sono riportate alcune caratteristiche essenziali del modulo set_fact.
Esempio di set_fact Ansible
Diamo un'occhiata ad alcuni esempi per illustrare usando set_fact.
Nell'esempio seguente, utilizziamo set_fact per assegnare un valore specifico a una variabile e creare un utente.
---
- Host: tutto
diventa vero
compiti:
- Nome: Crea utente.
set_fact:
Nome utente: Linuxhint
utente:
nome: "nome utente"
Gruppo: "nome utente"
Shell: /Bin /Bash
Nell'esempio sopra, utilizziamo il modulo set_fact per creare un utente su un host remoto.
Un altro esempio è utilizzare il set_fact con i condizionali. Per esempio:
---
- Host: tutto
diventa vero
compiti:
- Nome: Apache
set_fact:
PKG: "Apache2"
Quando: Ansible_Distribution == "Debian" o Ansible_Distribution == "Ubuntu"
- Nome: httpd
set_fact:
PKG: "HTTPD"
Quando: ansible_distribution == 'centos' o ansible_distribution == 'Red Hat Enterprise Linux'
Nell'esempio di playbook sopra, impostiamo il pacchetto su Apache2 quando la distribuzione è Debian o Ubuntu e HTTPD per CentOS e REHL.
Chiusura
Il modulo Ansible Set_Fact consente di aggiungere flessibilità ai tuoi playbook in base alle informazioni raccolte dall'host.
Grazie per aver letto!