Questo capitolo contiene le istruzioni da seguire per creare parole chiave personalizzate per le regole o per altre operazioni.
Se si sta installando un pool radice di Solaris ZFS, vedere il Capitolo 9Installazione di un pool radice ZFS con il metodo JumpStart per conoscere le limitazioni e consultare alcuni esempi di profili.
Per comprendere la natura di queste parole chiave, si pensi alla funzione delle parole chiave nelle regole. Una regola è una parola o un'unità lessicale predefinita che descrive un attributo generale del sistema, ad esempio il nome host, hostname, o la dimensione della memoria, memsize. Al suo interno, le parole chiave e i valori ad esse associati permettono di abbinare i sistemi con determinati attributi a un profilo. Questo meccanismo permette di definire le modalità di installazione di Solaris sui singoli sistemi di un gruppo.
Le variabili d'ambiente del metodo JumpStart personalizzato, usate negli script iniziali e finali, vengono impostate su richiesta. Ad esempio, le informazioni sul sistema operativo già installato su un sistema sono disponibili in SI_INSTALLED solo dopo l'utilizzo della parola chiave installed.
In alcuni casi, può essere necessario estrarre la stessa informazione in uno script iniziale o finale per uno scopo diverso da quello di abbinare un sistema a un profilo di installazione. La soluzione è rappresentata dalle parole chiave non operative. Queste parole chiave permettono di estrarre le informazioni degli attributi senza bisogno di impostare una condizione corrispondente per eseguire un profilo.
Per un elenco delle parole chiave non operative e dei relativi valori, vedere Parole chiave non operative e valori.
È possibile che le parole chiave descritte in Parole chiave e valori usati nelle regole e Parole chiave non operative e valori non siano abbastanza precise per le esigenze di installazione del proprio sito. In questo caso, è possibile definire direttamente le parole chiave necessarie creando un file custom_probes.
Il file custom_probes è uno script della shell Bourne che contiene due tipi di funzioni. Il file custom_probes deve essere salvato nella stessa directory JumpStart in cui risiede il file rules. I due tipi di funzioni che è possibile definire nel file custom_probes sono le seguenti:
Dichiarative – Queste funzioni acquisiscono le informazioni richieste, o svolgono le operazioni corrispondenti, e impostano la variabile d'ambiente SI_ definita dall'utente. Queste funzioni diventano parole chiave non operative.
Comparative – Queste funzioni chiamano una funzione dichiarativa corrispondente, confrontano l'output della funzione dichiarativa con lo stato del sistema e restituiscono 0 se la condizione definita viene soddisfatta o 1 se non viene soddisfatta. Le funzioni comparative diventano parole chiave delle regole.
Il file custom_probes può contenere qualunque comando, variabile o algoritmo che sia accettato dalla Bourne shell.
All'interno del file custom_probes è possibile definire funzioni dichiarative e comparative che richiedano un singolo argomento. Quando la parola chiave corrispondente viene usata nel file rules, l'argomento che la segue viene interpretato (come $1).
Quando si utilizza una parola chiave personalizzata in una regola del file rules, i relativi argomenti vengono interpretati in sequenza. La sequenza inizia dopo la parola chiave e termina al primo simbolo && o al primo script iniziale.
Il file custom_probes deve soddisfare i seguenti requisiti:
Il proprietario del file deve essere root
Il file deve essere eseguibile e le autorizzazioni devono essere impostate su 755
Il file deve contenere almeno una funzione dichiarativa e una funzione comparativa corrispondente
Per ragioni di chiarezza e di organizzazione, è preferibile definire per prime le funzioni dichiarative e collocarle all'inizio del file, seguite dalle funzioni comparative.
Il nome di una funzione dichiarativa deve iniziare con probe_. Il nome di una funzione comparativa deve iniziare con cmp_.
Le funzioni che iniziano con probe_ definiscono parole chiave non operative. Ad esempio, la funzione probe_tcx definisce una nuova parola chiave non operativa di nome tcx. Le funzioni che iniziano con cmp_ definiscono le parole chiave per le regole. Ad esempio, cmp_tcx definisce la parola chiave tcx per l'utilizzo in una regola.
Usando un editor di testo, creare un file di testo contenente uno script per la Bourne shell. Assegnare al file il nome custom_probes.
Nel file di testo custom_probes, definire le funzioni dichiarative e comparative desiderate.
È possibile definire funzioni dichiarative e comparative che richiedano uno o più argomenti nel file custom_probes. Quando la parola chiave non operativa corrispondente viene usata nel file rules, gli argomenti che la seguono vengono interpretati in sequenza (come $1, $2 e così via).
Quando si utilizza una parola chiave personalizzata in una regola del file rules, i relativi argomenti vengono interpretati in sequenza. La sequenza inizia dopo la parola chiave e termina al primo simbolo && o al primo script iniziale.
Salvare il file custom_probes nella directory JumpStart in cui risiede il file rules.
Verificare che il proprietario del file rules sia root e che le autorizzazioni siano impostate su 644.
Altri esempi di funzioni dichiarative e comparative si trovano nelle seguenti directory:
/usr/sbin/install.d/chkprobe sui sistemi su cui è installato Solaris
/Solaris_10/Tools/Boot/usr/sbin/install.d/chkprobe sul DVD del sistema operativo Solaris o sul CD Solaris Software - 1
Il file custom_probes seguente contiene una funzione dichiarativa e una funzione comparativa che verificano la presenza di una scheda grafica TCX.
#!/bin/sh # # custom_probe script to test for the presence of a TCX graphics card. # # # PROBE FUNCTIONS # probe_tcx() { SI_TCX=`modinfo | grep tcx | nawk '{print $6}'` export SI_TCX } # # COMPARISON FUNCTIONS # cmp_tcx() { probe_tcx if [ "X${SI_TCX}" = "X${1}" ]; then return 0 else return 1 if } |
Il seguente esempio di file rules mostra l'uso della parola chiave non operativa definita nell'esempio precedente, tcx. Se in un sistema viene rilevata una scheda grafica TCX, viene eseguito il profilo di nome profilo_tcx. Diversamente, viene eseguito il file profilo.
Le parole chiave non operative devono sempre essere collocate all'inizio del file rules. Questa posizione fa sì che vengano lette ed eseguite prima delle parole chiave usate dalle regole, che potrebbero fare riferimento a tali parole chiave non operative.
probe tcx tcx tcx - profile_tcx - any any - profile - |
Prima di usare un profilo, un file rules o un file custom_probes, occorre eseguire lo script check per verificare che non contengano errori di sintassi. Se nei profili, nelle regole e nelle funzioni dichiarative e comparative non vengono riscontrati errori, vengono creati i file rules.ok e custom_probes.ok. La Tabella 5–1 descrive il funzionamento dello script check.
Tabella 5–1 Operazioni eseguite dallo script check
Verificare che lo script check si trovi nella directory JumpStart.
Lo script check si trova nella directory Solaris_10/Misc/jumpstart_sample sul DVD del sistema operativo Solaris o sul CD Solaris Software - 1.
Eseguire lo script check per verificare i file rules e custom_probes.
$ ./check -p path -r nome_file |
Verifica il file custom_probes eseguendo lo script check dall'immagine di Solaris per la piattaforma del sistema anziché direttamente dal sistema in uso. percorso è l'immagine residente su un disco locale, su un DVD del sistema operativo Solaris attivato o su un CD Solaris Software - 1 attivato.
Se il sistema utilizza una versione precedente di Solaris, questa opzione permette di eseguire la versione più recente di check.
Specifica un file con un nome diverso da custom_probes. Usando l'opzione - r, è possibile provare la validità di una serie di funzioni prima di integrarle nel file custom_probes.
Durante l'esecuzione, lo script check indica la validità dei file rules e custom_probes e dei profili esaminati. Se non vengono riscontrati errori, lo script restituisce il messaggio seguente: “The custom JumpStart configuration is ok” e crea i file rules.ok e custom_probes.ok nella directory JumpStart.
Determinare se il file custom_probes.ok è eseguibile.
In caso affermativo, passare al Punto 5.
In caso negativo, usare il comando seguente.
# chmod +x custom_probes |
Verificare che il proprietario del file custom_probes.ok sia root e che le autorizzazioni siano impostate su 755.