Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Développez EC2Rescue des modules pour les instances Amazon EC2 Linux
Les modules sont écrits dans YAML une norme de sérialisation des données. Le YAML fichier d'un module se compose d'un seul document représentant le module et ses attributs.
Ajouter des attributs de module
Le tableau suivant répertorie les attributs de module disponibles.
Attribut |
Description |
---|---|
name |
Nom du module. La longueur du nom doit être inférieure ou égale à 18 caractères. |
Version |
Numéro de version du module. |
title |
Titre court et descriptif du module. La longueur de cette valeur doit être inférieure ou égale à 50 caractères. |
helptext |
Description étendue du module. La longueur de chaque ligne doit être inférieure ou égale à 75 caractères. Si le module consomme des arguments, obligatoires ou facultatifs, incluez-les dans la valeur helptext. Exemples :
|
placement |
Étape dans laquelle le module doit être exécuté. Valeurs prises en charge :
|
langage |
Langage dans lequel le code du module est écrit. Valeurs prises en charge :
NoteLe code Python doit être compatible avec Python 2.7.9+ et Python 3.2+. |
remediation |
Indique si le module prend en charge la correction. Les valeurs prises en charge sont Le module utilise par défaut |
content |
Intégralité du code de script. |
contrainte |
Nom de l'objet contenant les valeurs de contrainte. |
domaine |
Descripteur de la façon dont le module est regroupé ou classé. L'ensemble de modules inclus utilise les domaines suivants :
|
class |
Descripteur du type de tâche effectué par le module. L'ensemble de modules inclus utilise les classes suivantes :
|
distro |
Liste des distributions Linux que ce module prend en charge. L'ensemble de modules inclus utilise les distributions suivantes :
|
obligatoire |
Les arguments requis que le module consomme à partir des CLI options. |
facultatif |
Arguments facultatifs que le module peut utiliser. |
logiciel |
Exécutables logiciels utilisés dans le module. Cet attribut a pour but de spécifier un logiciel qui n'est pas installé par défaut. La logique EC2Rescue pour Linux garantit que ces programmes sont présents et exécutables avant d'exécuter le module. |
package |
Package logiciel source pour un exécutable. Cet attribut est destiné à fournir des informations détaillées sur le package contenant le logiciel, y compris un outil URL permettant de télécharger ou d'obtenir des informations supplémentaires. |
sudo |
Indique si l'accès racine est obligatoire pour exécuter le module. Vous n'avez pas besoin d'implémenter des vérifications sudo dans le script du module. Si la valeur est vraie, la logique EC2Rescue pour Linux n'exécute le module que lorsque l'utilisateur exécutant dispose d'un accès root. |
perfimpact |
Indique si le module peut avoir un impact important sur les performances qui affecte l'environnement dans lequel il est exécuté. Si la valeur est true et que l'argument |
parallelexclusive |
Spécifie un programme qui requiert une exclusivité mutuelle. Par exemple, tous les modules qui spécifient « bpf » sont exécutés en série. |
Ajouter des variables d'environnement
Le tableau suivant répertorie les variables d'environnement disponibles.
Variable d'environnement | Description |
---|---|
|
Chemin vers ec2rl.py . Ce chemin peut être utilisé pour localiser le répertoire lib et utiliser les modules Python fournis. |
|
Répertoire tmp principal pour l'outil de diagnostic. Valeur par défaut: |
|
Répertoire dans lequel toutes les sorties sont stockées. Valeur par défaut: |
|
Répertoire racine dans lequel placer les données collectées sur le module. Valeur par défaut: |
|
Pilote utilisé pour la première interface réseau non virtuelle, triée par ordre alphabétique, de l'instance. Exemples :
|
|
True si EC2Rescue for Linux est exécuté en tant que root ; sinon, faux. |
|
Type de virtualisation, tel que fourni par les métadonnées d'instance. Exemples :
|
|
Liste énumérée des interfaces du système. La valeur est une chaîne contenant des noms, tels que |
Utiliser YAML la syntaxe
Les points suivants doivent être pris en compte lors de la construction de vos YAML fichiers de module :
-
Le triple trait d'union (
---
) indique le début explicite d'un document. -
La
!ec2rlcore.module.Module
balise indique à l'YAMLanalyseur quel constructeur appeler lors de la création de l'objet à partir du flux de données. Vous trouverez le constructeur dans le fichiermodule.py
. -
La
!!str
balise indique à l'YAMLanalyseur de ne pas tenter de déterminer le type de données, mais d'interpréter le contenu comme une chaîne littérale. -
Le caractère pipe (
|
) indique à l'YAMLanalyseur que la valeur est un scalaire de style littéral. Dans ce cas, l'analyseur inclut tous les espaces. C'est important pour les modules car les caractères de mise en retrait et de saut de ligne sont conservés. -
Le retrait YAML standard est constitué de deux espaces, comme le montrent les exemples suivants. Veillez à conserver la mise en retrait standard (par exemple, quatre espaces pour Python) pour votre script, puis mettez en retrait l'intégralité du contenu à l'aide de deux espaces dans le fichier du module.
Exemples de modules
Example un (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