Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Sviluppa EC2Rescue moduli per istanze Amazon EC2 Linux
I moduli sono scritti inYAML, uno standard di serializzazione dei dati. Il YAML file di un modulo è costituito da un singolo documento, che rappresenta il modulo e i suoi attributi.
Aggiunta di attributi di modulo
Nella tabella seguente vengono elencati gli attributi di modulo disponibili.
Attributo |
Descrizione |
---|---|
name |
Il nome del modulo. Il nome non deve superare i 18 caratteri. |
version |
Il numero di versione del modulo. |
title |
Un breve titolo descrittivo del modulo. Questo valore non deve superare i 50 caratteri. |
helptext |
La descrizione estesa del modulo. Ogni riga non deve superare i 75 caratteri. Se il modulo consuma argomenti, obbligatori o facoltativi, includili nel valore helptext. Ad esempio:
|
placement |
La fase in cui eseguire il modulo. Valori supportati:
|
linguaggio |
Il linguaggio in cui è scritto il codice del modulo. Valori supportati:
NotaIl codice Python deve essere compatibile con Python 2.7.9 e versioni successive e Python 3.2 e versioni successive. |
remediation |
Indica se il modulo supporta le azioni di correzione. I valori supportati sono Il modulo viene impostato su |
content |
L'interezza del codice dello script. |
vincolo |
Il nome dell'oggetto contenente i valori di vincolo. |
domain |
Un descrittore del raggruppamento o della classificazione del modulo. L'insieme dei moduli inclusi utilizza i domini seguenti:
|
classe |
Un descrittore del tipo di attività effettuato dal modulo. L'insieme dei moduli inclusi utilizza le classi seguenti:
|
distro |
L'elenco delle distribuzioni Linux supportate da questo modulo. Il set di moduli inclusi utilizza le distribuzioni seguenti:
|
obbligatorio |
Gli argomenti richiesti che il modulo utilizza tra le CLI opzioni. |
facoltativo |
Gli argomenti facoltativi che il modulo può utilizzare. |
software |
I file eseguibili del software utilizzati nel modulo. Questo attributo è progettato per specificare un software non installato per impostazione predefinita. La logica EC2Rescue per Linux assicura che questi programmi siano presenti ed eseguibili prima di eseguire il modulo. |
package |
Il pacchetto software di origine di un file eseguibile. Questo attributo ha lo scopo di fornire dettagli estesi sul pacchetto con il software, incluso uno URL strumento per scaricare o ottenere ulteriori informazioni. |
sudo |
Indica se l'accesso root è obbligatorio per l'esecuzione del modulo. Non è necessario implementare i controlli sudo nello script del modulo. Se il valore è vero, la logica EC2Rescue for Linux esegue il modulo solo quando l'utente che esegue l'esecuzione ha accesso root. |
perfimpact |
Indica se il modulo può avere un significativo impatto sulle prestazioni nell'ambiente in cui viene eseguito. Se il valore è true e l'argomento |
parallelexclusive |
Specifica un programma che richiede reciproca esclusività. Ad esempio, tutti i moduli con la specifica "bpf" vengono eseguiti in modo seriale. |
Aggiunta di variabili di ambiente
Nella tabella seguente vengono elencate le variabili di ambiente disponibili.
Variabile di ambiente | Descrizione |
---|---|
|
Il percorso a ec2rl.py . Questo percorso può essere utilizzato per individuare la directory lib e per utilizzare i moduli Python gestiti da un fornitore. |
|
La directory tmp principale dello strumento di diagnostica. Valore predefinito: |
|
La directory in cui viene archiviato tutto l'output. Valore predefinito: |
|
La directory root in cui inserire i dati raccolti sul modulo. Valore predefinito: |
|
Il driver in uso per la prima interfaccia di rete non virtuale sull'istanza (in ordine alfabetico). Esempi:
|
|
Vero se EC2Rescue per Linux è in esecuzione come root; in caso contrario, falso. |
|
Il tipo di virtualizzazione fornito dai metadati dell'istanza. Esempi:
|
|
Un elenco enumerato delle interfacce sul sistema. Il valore è una stringa contenente nomi, come |
Usa la YAML sintassi
Quando si costruiscono i file del moduloYAML, è necessario tenere presente quanto segue:
-
I trattini tripli (
---
) denotano l'inizio esplicito di un documento. -
Il
!ec2rlcore.module.Module
tag indica al YAML parser quale costruttore chiamare quando si crea l'oggetto dal flusso di dati. È possibile trovare il costruttore nel filemodule.py
. -
Il
!!str
tag indica al YAML parser di non tentare di determinare il tipo di dati e di interpretare invece il contenuto come una stringa letterale. -
Il carattere pipe (
|
) indica al YAML parser che il valore è uno scalare in stile letterale. In questo caso, il parser include tutti gli spazi vuoti. Ciò è importante per i moduli perché vengono mantenuti i caratteri di rientro e nuova riga. -
Il rientro YAML standard è composto da due spazi, come si può vedere negli esempi seguenti. Assicurati di mantenere il rientro standard (ad esempio, quattro spazi per Python) nello script e di far rientrare di due spazi tutto il contenuto all'interno del file del modulo.
Moduli di esempio
Esempio uno (mod.d/ps.yaml
):
--- !ec2rlcore.module.Module # Module document. Translates directly into an almost-complete Module object name: !!str ps path: !!str version: !!str 1.0 title: !!str Collect output from ps for system analysis helptext: !!str | Collect output from ps for system analysis Requires --times= for number of times to repeat Requires --period= for time period between repetition placement: !!str run package: - !!str language: !!str bash content: !!str | #!/bin/bash error_trap() { printf "%0.s=" {1..80} echo -e "\nERROR: "$BASH_COMMAND" exited with an error on line ${BASH_LINENO[0]}" exit 0 } trap error_trap ERR # read-in shared function source functions.bash echo "I will collect ps output from this $EC2RL_DISTRO box for $times times every $period seconds." for i in $(seq 1 $times); do ps auxww sleep $period done constraint: requires_ec2: !!str False domain: !!str performance class: !!str collect distro: !!str alami ubuntu rhel suse required: !!str period times optional: !!str software: !!str sudo: !!str False perfimpact: !!str False parallelexclusive: !!str