Ansible Academy · Lezione

Suddividere i playbook con import e include

Inclusione statica e dinamica delle attività

Lezione 3 di 413 passaggi

Suddividere i playbook con import e include è una lezione Ansible Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ansible Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ansible Academy include 4 lezioni in totale.

Un unico file enorme crea problemi

Un playbook di 500 righe è difficile da leggere e riutilizzare. Ansible consente di suddividere il lavoro in parti e di includerle dove necessario. ✂️

Due famiglie: import e include

Ansible offre due modalità di riutilizzo: import_* per l'inclusione statica e include_* per l'inclusione dinamica. La differenza sta nel momento in cui vengono elaborati.

import_tasks statico

import_tasks viene preelaborato quando il playbook viene analizzato, prima dell'esecuzione di qualsiasi task. Il comportamento è fisso e prevedibile.

- import_tasks: setup.yml

include_tasks dinamico

include_tasks viene elaborato a runtime, nell'ordine di esecuzione, quindi può reagire alle variabili e ai risultati determinati in precedenza nel play.

- include_tasks: "{{ os_family }}.yml"

Perché il momento è importante

Poiché import è statico, non è possibile usare una variabile di runtime nel suo nome file. In questo caso occorre usare invece include_tasks, che è dinamico.

I cicli richiedono include

Desidera ripetere un intero file? Solo include_tasks supporta i cicli, perché l'insieme di file viene determinato mentre il play è in esecuzione.

- include_tasks: user.yml
  loop: "{{ users }}"

I tag si comportano diversamente

Un tag applicato a import_tasks viene applicato a ogni task importato, mentre un tag applicato a include_tasks riguarda solo l'istruzione include.

Importare playbook interi

Al livello superiore, utilizzi import_playbook per combinare interi playbook. È esattamente così che site.yml assembla il progetto.

- import_playbook: webservers.yml
- import_playbook: dbservers.yml

Riutilizzare tra i play

I file di task condivisi, come quelli per una configurazione iniziale comune, possono essere importati in molti playbook: in questo modo scrive la logica una sola volta e la riutilizza ovunque.

Un'impostazione predefinita sensata

Preferisca import per i passaggi prevedibili che devono essere sempre eseguiti. Scelga include solo quando servono davvero decisioni a runtime, come cicli o nomi file basati su variabili.

La suddivisione in azione

Qui un play importa un file di configurazione iniziale statico, quindi include condizionalmente un file specifico per il sistema operativo. Due strumenti, due compiti. 🎯

tasks:
  - import_tasks: base.yml
  - include_tasks: "{{ ansible_os_family }}.yml"

Controllo rapido

È necessario un nome file costruito a partire da una variabile di runtime. Quale direttiva funziona?

Riepilogo

Ha imparato che import_* è statico e viene analizzato in anticipo, mentre include_* è dinamico e viene eseguito nel punto in cui compare, consentendo cicli e nomi file basati su variabili. ✅

Gratis per iniziare

Impara YAML con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Suddividere i playbook con import e include» è gratuita?

Sì — il testo completo di «Suddividere i playbook con import e include» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ansible Academy, passa a CoddyKit PRO. Il corso Ansible Academy include 4 lezioni in totale.

Cosa imparerò in «Suddividere i playbook con import e include»?

Inclusione statica e dinamica delle attività Eserciti Ansible Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ansible Academy?

Non è richiesta alcuna esperienza precedente. Ansible Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Suddividere i playbook con import e include»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ansible Academy?

Sì. Ogni lezione Ansible Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. La struttura di directory consigliata
  2. Directory group_vars e host_vars
  3. Suddividere i playbook con import e include
  4. Nomi, commenti e stile scalabili
← Torna a Ansible Academy