2.4. Templating


Con il templating di kickstart sarà possibile includere le variabili, gli snippet, e le istruzioni di controllo del flusso come per esempio i loop for e if nei file kickstart. Per questo processo usare il tool cheetah.
È possibile utilizzare il templating per svariati motivi ad esempio:
  • Per il riutilizzo di una sezione particolare di kickstart come la sezione relativa al partizionamento del disco tra le partizioni multiple.
  • Se desiderate eseguire determinate azioni in %post attraverso kickstart multipli.
  • Definizione di uno snippet su alcuni tipi di ruoli ricoperti dal server come ad esempio il server DNS, il server proxy ed il web server. Per esempio il web server potrà avere il seguente snippet:
    httpd
    mod_ssl
    mod_python
    
    Copy to Clipboard Toggle word wrap
    Per creare un profilo del web server includere lo snippet nella sezione %package del file di kickstart. Se desiderate che un profilo possa essere sia un web server che un server proxy includere entrambi gli snippet nella sezione del pacchetto. Successivamente se desiderate aggiungere un altro pacchetto allo snippet del web server, per esempio mod_perl, aggiornate gli snippet. Così facendo tutti i profili che utilizzano lo snippet in questione verranno aggiornati dinamicamente.
Variabili

Il templating permette ad un utente di definire una variabile da usare su di un file di kickstart. Le variabili possono essere impostate su di un livello e sovrascritte su livelli inferiori. Se si definisce una variabile sul livello del sistema ciò sovrascriverà la variabile stessa definita sui livelli del profilo o kickstart. Similmente, se si definisce una variabile sul livello del Profilo ciò sovrascriverà la stessa variabile se definita sul livello dell'albero kickstart (distro).

Nota

Da notare che le variabili dell'albero kickstart non possono essere definite per gli alberi kickstart generati automaticamente come ad esempio quelli ottenuti al momento della sincronizzazione di satellite.
Snippet

Gli snippet riutilizzano sezioni di codice tra template multipli di kickstart. Essi possono includere numerose righe e variabili, possono essere inclusi in un profilo kickstart utilizzando il testo $SNIPPET('snippet_name'). Sarà possibile creare uno snippet per un determinato elenco di pacchetti, uno per uno script %post particolare, o per qualsiasi testo da includere in un file kickstart.

Per gestire gli snippet andate su Sistemi Kickstart Snippet di Kickstart.
La pagina Snippet di Kickstart mostra numerosi snippet che non possono essere modificati ma che sono disponibili a qualsiasi organizzazione. Gli snippet predefiniti possono essere usati con kickstart scritti o caricati sul server di RHN Satellite. Gli snippet predefiniti sono archiviati sul file system del server di RHN Satellite in /var/lib/cobbler/snippets/. È disponibile un template di kickstart basato sul wizard in /var/lib/rhn/kickstarts/wizard/ in grado di spiegare i diversi tipi di snippet predefiniti ed il loro impiego.
Lo snippet redhat_register è quello predefinito e può essere usato per la registrazione delle macchine su di un server di RHN Satellite come parte di kickstart. Utilizza una variabile speciale chiamata redhat_management_key per la registrazione della macchina. Impostate la suddetta variabile sul sistema o sul livello della distribuzione ed aggiungere $SNIPPET('redhat_register') ad una sezione %post del kickstart. Qualsiasi kickstart basato sul wizard generato dal server di RHN Satellite includerà lo snippet nella propria sezione %post.
La scheda Snippet personalizzati permette di visualizzare e modificare gli snippet creati per la vostra organizzazione. I nuovi snippet possono essere creati selezionando crea nuovo snippet. Gli snippet personalizzati sono archiviati nella directory /var/lib/rhn/kickstarts/snippets/. RHN Satellite archivia gli snippet per diverse organizzazioni in directory differenti così facendo gli snipper personalizzati possono essere archiviati usando un nome del file simile al seguente, dove 1 è l'ID dell'organizzazione:
$SNIPPET('spacewalk/1/snippet_name')
Copy to Clipboard Toggle word wrap
Per determinare il testo da usare per inserire lo snipet nel kickstart andate alla ricerca della colonna Snippet Macro nell'elenco degli snippet oppure sulla pagina Dettagli snippet.

Nota

Gli snippet sono presenti a livello globale e non condividono la stessa struttura di successione delle variabili. È possibile utilizzare variabili all'interno degli snippet per modificarne il comportamento a seconda del sistema che richiede il processo kickstart.

Figura 2.3. Snippet kickstart

Escape dei caratteri speciali

I caratteri $ e # vengono usati durante il templating per specificare le variabili e controllare il flusso. Per utilizzare i suddetti caratteri per qualsiasi altro scopo in uno script, sarà necessario eseguire l'escape degli stessi in modo da non essere riconosciuti come variabili. Per fare questo seguire i metodi riportati:

  • Posiziore un carattere di backslash (\) prima di ogni istanza di $ o # da ignorare durante il template.
  • Racchiudere l'intero script in #raw ... #end raw
    Tutti gli script %pre e %post creati usando i kickstart basati sul Wizard sono racchiusi per impostazione predefinita in #raw...#end raw. Ciò può essere selezionato o deselezionato usando la casella relativa al Template disponibile durante la modifica di uno script %post o %pre.
  • Includere #errorCatcher Echo nella prima riga dello snippet.

Esempio 2.1. Escape dei caratteri speciali nei template

Questo esempio descrive come eseguire l'escape dei caratteri speciali nei tempate di kickstart.
Inserire il seguente script bash in una sezione %post:
%post 
echo $foo > /tmp/foo.txt
Copy to Clipboard Toggle word wrap
Se non eseguite l'escape di $ il motore per il templating cercherà di trovare una variabile chiamata $foo fallendo poichè essa non esiste come variabile.
Il modo più semplice di eseguire l'escape del parametro $ è quello di utilizzare un carattere backslash (\):
%post 
echo \$foo > /tmp/foo.txt
Copy to Clipboard Toggle word wrap
Così facendo \$foo verrà interpretato come $foo.
Un secondo metodo è quello di racchiudere l'intero script bash in #raw ... #end raw:
%post 
#raw  
echo $foo > /tmp/foo.txt 
#end raw
Copy to Clipboard Toggle word wrap
Il metodo finale è quello di includere #errorCatcher Echo nella prima riga di kickstart. Tale impostazione indica al motore di templating di ignorare qualsiasi variabile non esistente e di stampare il testo. Questa opzione viene inclusa nei kickstart basati sul wizard e può essere inclusa nei kickstart raw creati.
Torna in cima
Red Hat logoGithubredditYoutubeTwitter

Formazione

Prova, acquista e vendi

Community

Informazioni sulla documentazione di Red Hat

Aiutiamo gli utenti Red Hat a innovarsi e raggiungere i propri obiettivi con i nostri prodotti e servizi grazie a contenuti di cui possono fidarsi. Esplora i nostri ultimi aggiornamenti.

Rendiamo l’open source più inclusivo

Red Hat si impegna a sostituire il linguaggio problematico nel codice, nella documentazione e nelle proprietà web. Per maggiori dettagli, visita il Blog di Red Hat.

Informazioni su Red Hat

Forniamo soluzioni consolidate che rendono più semplice per le aziende lavorare su piattaforme e ambienti diversi, dal datacenter centrale all'edge della rete.

Theme

© 2026 Red Hat