Cos'è ansible set_fact

Cos'è ansible set_fact
Le variabili ci aiutano a personalizzare i playbook e le attività di Ansible per lavorare con diversi sistemi host e ambienti di lavoro.

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:

  • Memorizzazione nella cache: Questo parametro booleano ha due opzioni: sì e no. Questo parametro trasforma una variabile Set_Fact in un "fatto" memorizzato nella cache dei fatti, ma solo se hai la memorizzazione della cache del fatto.
  • Key_value: Variabili Impostare utilizzando il modulo set_fact Utilizzare il tasto "tasto = valore" -or ": valore" per le coppie di stringa YAML, in cui il tasto è il nome e il valore della variabile definisce il valore della variabile.

Di seguito sono riportate alcune caratteristiche essenziali del modulo set_fact.

  • Il tasto key = value-or: parametro valore per solo YAML crea booleani e stringhe, ma è possibile utilizzare VAR: [Val20, Val30] per creare dizionari o array.
  • Set_fact crea valori variabili statici
  • Variabili Impostare utilizzando set_Fact Seguire le regole di precedenza della variabile standard e della variabile; Pertanto, altri tipi di variabili con una priorità più elevata possono sovrascrivere il valore di valore prezioso set_fact
  • Non puoi usare "memorizzazione nella cache" come nome di fatto valido perché Ansible versione 2.4 e successivamente averlo come parametro del modulo
  • Le variabili di set-fact sono basate su host-host e sono disponibili per le successive corse di playbook Ansible
  • Il modulo SET_FACT supporta anche gli obiettivi di Windows

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!