È 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 - |