Macro personalizzate
Le macro forniscono la possibilità di aggiungere dati variabili (impostazioni di configurazione) a un file di installazione automatica o a uno script post-installazione. Lenovo XClarity Administrator consente di definire le impostazioni personalizzate creando un file di impostazioni di configurazione personalizzate, utilizzando il formato JSON.
Il valore per ogni impostazione di configurazione personalizzata varia in base all'input specificato dall'utente durante la distribuzione del sistema operativo.
Quando si importano le impostazioni di configurazione personalizzate in XClarity Administrator, XClarity Administrator convalida lo schema JSON. Se la convalida riesce, XClarity Administrator genera macro personalizzate per ogni impostazione.
Per inserire le macro personalizzate in un file di installazione automatica o in uno script post-installazione, utilizzare il nome univoco dell'oggetto, separare gli oggetti nidificati con un punto e quindi racchiudere il nome della macro con il simbolo hash (#), ad esempio, #server_settings.server0.locale#.
Non includere il nome dell'oggetto principale.
Quando viene creato un oggetto da un modello, il nome viene aggiunto con un numero univoco, a partire da 0 (ad esempio, server0 e server1).
È possibile visualizzare il nome per ogni macro dalla finestra di dialogo Distribuisci immagini sistema operativo sulle schede Impostazioni personalizzate, passando il mouse sull'icona Guida () accanto a ciascuna impostazione personalizzata.
Impostazioni di configurazione
Sono comuni a tutti i server di destinazione o univoche per un server di destinazione specifico.
Dispongono di valori statici (non configurabili) o di valori dinamici (configurabili) immessi quando si distribuisce il profilo immagine del sistema operativo.
Dispongono di un numero variabile di elementi basato su un modello. Ad esempio, è possibile definire un'impostazione di configurazione che consente di specificare i server NTP 0-3 durante la distribuzione.
- Impostazioni comuni
Durante la distribuzione del sistema operativo gli elementi dell'interfaccia utente delle schede Impostazioni comuni della finestra di dialogo Distribuisci immagine sistema operativo vengono visualizzati in base agli oggetti rappresentati nell'oggetto content. Gli oggetti descrivono le impostazioni e i valori necessari a tutti i server di destinazione per la distribuzione del sistema operativo.
Per rappresentare le impostazioni comuni a tutti i server, il file JSON deve contenere un oggetto principale con un oggetto nidificato che contiene la coppia nome/valore "common":true.
Nel seguente esempio vengono utilizzati gli stessi server NTP (dinamici) configurabili per tutti i server.{
"category": "dynamic",
"content": [{
"category": "dynamic",
"common": true,
"description": "NTP Servers",
"label": "NTP Servers",
"maxElements": 3,
"minElements": 0,
"name": "common-ntpservers",
"optional": true,
"template": [{
"autoCreateInstance": true,
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver",
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string"
}],
"type": "array"
},
...,
}Nel seguente esempio viene utilizzata la stessa directory di log degli script post-installazione (statici) non configurabile.{
"category": "dynamic",
"content": [{
"category": "static",
"common": true,
"description": "Directory location for post-installation script logging.",
"name": "logpath",
"optional": false,
"type": "string",
"value": "/tmp/mylogger.log"
},
...,
}- Impostazioni specifiche del server
Durante la distribuzione del sistema operativo gli elementi dell'interfaccia utente della scheda Impostazioni specifiche del server della finestra di dialogo Distribuisci immagine sistema operativo vengono visualizzati in base agli oggetti rappresentati nell'oggetto content del modello. Gli oggetti descrivono le impostazioni e i valori necessari a un server di destinazione specifico per la distribuzione del sistema operativo.
Una volta raccolti i valori specifici del server nell'interfaccia utente, viene creato un oggetto content in formato JSON per ciascun server di destinazione, in base all'oggetto template. Ciascun oggetto content contiene un campo name e un campo targetServer univoci e qualsiasi valore immesso per quel server.
Per rappresentare le impostazioni specifiche del server, il file JSON deve contenere un oggetto principale con il seguente contenuto:
La coppia nome/valore "category":"dynamic".
L'oggetto nidificato che contiene la coppia nome/valore "common":false. Solo un oggetto "common": false è supportato nel contenuto dell'oggetto principale.
Un oggetto modello con un oggetto di contenuto integrato. Questo array modello può contenere solo un oggetto.
Ad esempio, se si desidera definire le impostazioni internazionali univoche del sistema operativo per ciascun server di destinazione{
"category": "dynamic",
"content": [{
"category": "dynamic",
"common": false,
"name": "server-settings",
"optional": false,
"template": [{
"category": "dynamic",
"common": false,
"content": [{
"category": "dynamic",
"choices": ["en_US", "pt_BR", "ja_JP"],
"common": false,
"label": "OS Locale",
"name": "locale",
"optional": false,
"type": "string",
"value": "en_US"
}],
"name": "server",
"optional": false,
"type": "assoc_array"
}],
"type": "assoc_array"
},
...,
}
Specifica JSON
La seguente tabella descrive i campi consentiti dalle specifiche JSON.
Parametro | Obbligatorio/Facoltativo | Tipo | Descrizione | ||
---|---|---|---|---|---|
autoCreateInstance | opzionale | Valore booleano | Indica se un'istanza dell'oggetto modello viene creata automaticamente nel file JSON in fase di distribuzione. É possibile selezionare uno dei seguenti valori.
Nota Questo campo può essere posizionato solo nell'oggetto modello. | ||
categoria | Obbligatorio | String | Indica la modalità di popolamento del valore di ciascuna impostazione. É possibile selezionare uno dei seguenti valori:
Gli oggetti nidificati ereditano il valore di questo campo dal relativo oggetto principale. Se il valore category è impostato su static nell'oggetto principale, deve essere impostato su static anche in tutti gli oggetti nidificati. Se il valore category è impostato su dynamic nell'oggetto principale, può essere static o dynamic negli oggetti nidificati. | ||
scelte | opzionale | Array di valori che corrispondono alla proprietà type | Array di valori statici (come stringhe o numeri interi) per l'impostazione di configurazione che l'utente può selezionare durante la distribuzione del sistema operativo (ad esempio, ["enabled","disabled"]). | ||
comune | opzionale | Valore booleano | Indica se questo schema di configurazione si applica a tutti i server di destinazione.
Gli oggetti nidificati ereditano il valore di questo campo dal relativo oggetto principale. Se il valore common è impostato su true nell'oggetto principale, deve essere impostato su true anche in tutti gli oggetti nidificati. Se il valore common è impostato su false nell'oggetto principale, deve essere impostato su false in tutti gli oggetti nidificati. | ||
contenuto | opzionale | Matrice di oggetti | Pattern che rappresenta gli oggetti nidificati nello schema. Una volta raccolti i dati immessi dall'utente durante la distribuzione del sistema operativo, questo campo viene utilizzato per rappresentare i valori finali di un determinato modello nell'istanza del file delle impostazioni di configurazione creato per la distribuzione. | ||
predefinito | opzionale | Varia a seconda del campo type | Il valore predefinito. | ||
descrizione | opzionale | String | Descrizione dell'oggetto | ||
etichetta | opzionale | String | Etichetta per l'impostazione nell'interfaccia utente visualizzata durante la distribuzione del sistema operativo | ||
massimo | opzionale | Numero intero | Valore massimo, quando type è impostato su un numero intero. Il valore predefinito è illimitato. | ||
maxElements | opzionale | Numero intero | Numero massimo di voci nella matrice per questo oggetto. | ||
min | opzionale | Numero intero | Valore minimo, quando type è impostato su un numero intero. Il valore predefinito è 0. | ||
minElements | opzionale | Numero intero | Numero minimo di voci nella matrice per questo oggetto. | ||
name | Obbligatorio | String | Nome univoco dell'oggetto. Questo nome può contenere solo i seguenti caratteri: caratteri alfanumerici (a-z, A-Z e 0-9), carattere di sottolineatura (_) e trattino (-). È possibile fare riferimento al campo name come macro personalizzata nel file di installazione automatica. Quando si fa riferimento a un oggetto name nidificato, separare ogni oggetto utilizzando un punto (ad esempio, mydeploy.node.locale). | ||
facoltativo | Obbligatorio | Valore booleano | Indica se l'oggetto è facoltativo. É possibile selezionare uno dei seguenti valori.
| ||
regex | opzionale | String | Espressione regolare per la convalida del valore (ad esempio, "[\\w\\.]{1,64}$") | ||
script | opzionale | Matrice di stringhe | Elenco di script, separati da una virgola, con dipendenze sui dati in questo oggetto (ad esempio, ["/opt/lenovo/saphana/bin/saphana-create-saphana.sh", "create_hana.sh"]). Nota Gli script devono essere disponibili nel profilo immagine del sistema operativo come script di installazione o software personalizzato. | ||
targetServer | opzionale | String | L'UUID del server di destinazione per la distribuzione del sistema operativo. Se il parametro "common" è impostato su "true", questo campo può essere vuoto o NULL e il server di destinazione viene specificato durante la distribuzione del sistema operativo. | ||
modello | opzionale | Matrice di oggetti | Pattern che rappresenta gli oggetti riutilizzabili. Durante la distribuzione del sistema operativo, questo modello può rappresentare più istanze dell'oggetto. I campi minElements e maxElements possono essere utilizzati per limitare il numero di istanze. Nel seguente esempio viene utilizzato un modello per rappresentare un array di 1-3 server NTP.
Una volta raccolti i dati immessi dall'utente durante la distribuzione del sistema operativo, viene creata un'istanza del file delle impostazioni di configurazione con il contenuto specifico per ogni dispositivo su cui si desidera distribuire il sistema operativo.
Nota
| ||
tipo | Obbligatorio | String | Il tipo di dati per l'oggetto. É possibile selezionare uno dei seguenti valori.
| ||
value | opzionale | String | Un singolo valore statico per l'impostazione di configurazione. Nota
|
{
"category": "dynamic",
"content": [{
"category": "dynamic",
"common": false,
"name": "server-settings",
"optional": false,
"template": [{
"autoCreateInstance": true,
"category": "dynamic",
"common": false,
"content": [{
"category": "dynamic",
"choices": ["en_US", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the OS language locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "OS Locale",
"name": "locale",
"optional": false,
"type": "string",
"value": "en_US"
},
{
"category": "dynamic",
"choices": ["english-us", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the keyboard locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "Keyboard Locale",
"name": "keyboardLocale",
"optional": false,
"type": "string",
"value": "english-us"
}],
"name": "server",
"optional": false,
"type": "assoc_array"
}],
"type": "assoc_array"
},
{
"category": "dynamic",
"common": true,
"description": "NTP Servers",
"label": "NTP Servers",
"maxElements": 3,
"minElements": 0,
"name": "common-ntpservers",
"optional": true,
"template": [{
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver",
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string"
}],
"type": "array"
},
{
"category": "static",
"common": true,
"description": "Directory for post-installation script logging.",
"name": "logpath",
"optional": false,
"type": "string",
"value": "/tmp/mylogger.log"
}],
"description": "Custom configuration file for deployment of custom locale, NTP server,
and directory for post-installation script logs.",
"label": "My Custom Deployment",
"name": "myCustomDeploy",
"optional": false,
"type": "array"
}
{
"category": "dynamic",
"content": [{
"category": "dynamic",
"common": false,
"name": "server-settings",
"optional": false,
"content": [{
"category": "dynamic",
"common": false,
"content": [{
"category": "dynamic",
"choices": ["en_US", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the OS language locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "OS Locale",
"name": "locale",
"optional": false,
"type": "string",
"value": "en_US"
},
{
"category": "dynamic",
"choices": ["english-us", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the keyboard locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "Keyboard Locale",
"name": "keyboardLocale",
"optional": false,
"type": "string",
"value": "english-us"
}],
"name": "server0",
"optional": false,
"type": "assoc_array",
"targetServer": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
},
{
"category": "dynamic",
"common": false,
"content": [{
"category": "dynamic",
"choices": ["en_US", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the OS language locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "OS Locale",
"name": "locale",
"optional": false,
"type": "string",
"value": "en_US"
},
{
"category": "dynamic",
"choices": ["english-us", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the keyboard locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "Keyboard Locale",
"name": "keyboardLocale",
"optional": false,
"type": "string",
"value": "english-us"
}],
"name": "server1",
"optional": false,
"type": "assoc_array",
"targetServer": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
}],
"template": [{
"category": "dynamic",
"common": false,
"content": [{
"category": "dynamic",
"choices": ["en_US", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the OS language locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "OS Locale",
"name": "locale",
"optional": false,
"type": "string",
"value": "en_US"
},
{
"category": "dynamic",
"choices": ["english-us", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the keyboard locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "Keyboard Locale",
"name": "keyboardLocale",
"optional": false,
"type": "string",
"value": "english-us"
}],
"name": "server",
"optional": false,
"type": "assoc_array"
}],
"type": "assoc_array"
},
{
"category": "dynamic",
"common": true,
"description": "NTP Servers",
"label": "NTP Servers",
"maxElements": 3,
"minElements": 0,
"name": "common-ntpservers",
"optional": true,
"content": [{
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver0,
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string",
"value": "192.0.2.1"
},
{
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver1",
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string",
"value": "192.0.2.2"
}],
"template": [{
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver",
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string"
}],
"type": "array"
},
{
"category": "static",
"common": true,
"description": "Directory for post-installation script logs.",
"name": "logpath",
"optional": false,
"type": "string",
"value": "/tmp/mylogger.log"
}],
"description": "Custom configuration file for deployment of custom locale, NTP server,
and directory for post-installation script logs.",
"label": "My Custom Deployment",
"name": "myCustomDeploy",
"optional": false,
"type": "array"
}