Come funzionano i filtri Ansible?

Come funzionano i filtri Ansible?
Una delle parti principali di qualsiasi framework o software di gestione è il modo in cui gestisce ed elabora i dati. Considerando la direzione in cui sta andando il mondo dell'informatica, è giusto dire che i dati sono re. Enormi quantità di dati vengono generate quotidianamente da utilizzare per scopi diversi. Pertanto, la gestione e l'elaborazione dei dati molto importanti.

Software come Ansible è necessario per gestire enormi quantità di dati. Osservando le facilitazioni che questi tipi di applicazioni dovrebbero fornire, le loro capacità di elaborazione dei dati devono essere di prim'ordine.

Ogni volta che dobbiamo elaborare, formattare o manipolare i dati in Ansible, utilizziamo i filtri. Ci sono due serie di filtri disponibili in Ansible. Un set è i filtri del modello Jinja2 e l'altro set è dei filtri personalizzati realizzati dagli utenti.

Tuttavia, in background, tutti i filtri sono derivati ​​dal modello Jinja2, che funziona in modo tale che i dati vengono inseriti nei filtri vengono prima convertiti in espressioni modello in modo che i filtri possano essere applicati a loro.

Un altro punto importante da prendere in considerazione è che tutti i filtri vengono applicati localmente, il che significa che non è possibile eseguire il filtro utilizzando host remoti. Quindi, tutta la manipolazione e l'elaborazione si svolgono sulla macchina di controllo Ansible.

Se stai cercando di conoscere i filtri disponibili in Ansible e come vengono utilizzati, hai trovato l'articolo giusto mentre ti guideremo su come funzionano questi filtri e su come creare playbook Ansible per elaborare i dati nel modo in cui desideri il tuo sistema a.

Come funzionano i filtri?

Il lavoro dietro i filtri di dati è semplice. Si fornisce filtri pre-sviluppato alcuni dati o informazioni come input; Il filtro analizza i dati in base ai comandi indicati nel playbook e alle condizioni che hai impostato. Dopo l'analisi dei dati, riceverai l'output personalizzato che desiderava dai dati che avevi.

Diversi tipi di filtri eseguono diversi tipi di filtraggio sui dati. Come accennato in precedenza, tutti funzionano in base al modello Jinja2 e c'è un elenco di tutti i filtri disponibili. Puoi vedere quell'elenco facendo clic su questo link.

Ci sono numerosi vantaggi nell'uso dei filtri in quanto migliorano notevolmente le capacità di Ansible. È inoltre possibile utilizzare i filtri per il debug in alcuni casi.

Come implementare i filtri in Ansible?

La sintassi di base di qualsiasi filtro Ansible è data da:

|

Un altro punto importante da prendere in considerazione è che la trasformazione dei dati in background viene eseguita usando Python. Nel caso in cui un certo tipo di modello non sia disponibile con Python, il filtro potrebbe non darti l'output corretto. Quindi, devi stare attento durante l'utilizzo di alcuni filtri.

Fino ad ora hai imparato le basi dei filtri Ansible. Per chiarire ulteriori domande, diamo un'occhiata ad alcuni esempi di filtraggio e diversi tipi di filtri.

Esempi

- Nome: genera molteplici nomi ospitanti arbitrari
Ansible.costruito.debug:
MSG: "['ABC', 'XYZ'] | Product (['com']) | mappa ('join', '.') | giuntura(',') "

Inoltre, vorremmo menzionare qui che per eseguire un playbook, il seguente comando dovrebbe essere eseguito usando il terminale Linux:

libro di prova Ansible-Playbook.YML

In questo esempio, abbiamo usato il filtro "Prodotto". Il filtro del prodotto viene utilizzato per l'implementazione della moltiplicazione cartesiana. Il filtro "Prodotto" è in qualche modo un analogo dell'utilizzo per i loop nei linguaggi di programmazione tradizionali. L'output che riceverai eseguendo tale codice sarebbe.

"msg": "ABC.com, xyz.com "

Ecco come puoi ottenere combinazioni per set di due numeri.

- Nome: dammi combinazioni per set di due
Ansible.costruito.debug:
msg: "[10,20,30,40,50] | Ansible.costruito.Combinazioni (2) | elenco "

Abbiamo usato il filtro "combinazione" per ottenere combinazioni di due numeri da un determinato set. Il 2 specificato tra parentesi indica di creare combinazioni di 2 e la parola chiave "elenco" ti darà l'output sotto forma di un elenco.

- Nome: permutazioni più grandi (Order Matters)
Ansible.costruito.debug:
msg: "[0,2,4,6,8] | Ansible.costruito.Permutazioni | elenco "
- Nome: Permutazioni di serie di tre
Ansible.costruito.debug:
msg: "[1,3,5,7,9] | Ansible.costruito.Permutazioni (3) | elenco "

C'è anche la fornitura di un filtro "permutazione". Questo filtro ci fornisce permutazioni di un determinato set di variabili o dati. Nell'esempio sopra, riceveremo le più grandi permutazioni dal set di numeri pari e permutazioni di set di tre dai numeri dispari.

"['a', 'b', 'c'] | random"

Questo esempio utilizza il filtro "casuale" per generare un numero casuale da un determinato set di dati.

51 | casuale (step = 10)

Questo esempio ha anche usato il filtro "casuale" per generare un numero casuale tra 0 e 50. Abbiamo anche dato la condizione che la dimensione del passo dovrebbe essere 10, quindi l'output che otterrai sarebbe un numero che è un multiplo di 10.

['a', 'b', 'c', 'd', 'e'] | shuffle

Il filtro "shuffle" può essere utilizzato per mescolare il set di dati per produrre un output in cui il dato verrà mescolato e quindi mostrato.

['Val': 1, 'val': 2, 'val': 3, 'val': 4] | min (attributo = 'val')

Infine, abbiamo usato il filtro "min" che confronterà i due numeri di input che abbiamo dato come input e ti darà il numero più piccolo come output.

['Val': 1, 'val': 2] | max (attributo = 'val')

Allo stesso modo, qui utilizziamo il filtro "max" per ottenere il numero massimo da un determinato set di dati.

Quindi, questi erano gli esempi di alcuni dei filtri disponibili in Ansible. Ci sono molti altri filtri che utilizzano i quali è possibile elaborare e formattare i dati.

Conclusione

In questo articolo, abbiamo esaminato i filtri Ansible. Abbiamo stabilito perché abbiamo bisogno di filtri nell'analisi dei dati e abbiamo esaminato alcuni filtri forniti dal plug-in. Speriamo di essere in grado di aiutarti a capire perché i filtri sono importanti e, soprattutto, ora capisci come puoi usarli a tuo vantaggio. Sentiti libero di abbandonare qualsiasi domanda nella sezione commenti.