Procédure : utiliser les AWS CLI avec Run Command
L'exemple de procédure suivant vous explique comment utiliser l'AWS Command Line Interface (AWS CLI) pour afficher les informations sur les commandes et leurs paramètres, comment exécuter les commandes et comment afficher le statut de ces dernières.
Important
Seuls les administrateurs de confiance doivent être autorisés à utiliser les documents préconfigurés AWS Systems Manager illustrés dans cette rubrique. Les commandes ou scripts spécifiés dans des documents Systems Manager sont exécutés avec des autorisations administratives sur vos nœuds gérés. Si un utilisateur a l'autorisation d'exécuter l'un des documents Systems Manager prédéfinis (tout document qui commence par AWS-
), cet utilisateur dispose d'un accès administrateur au nœud. Pour tous les autres utilisateurs, vous devez créer des documents restrictifs et les partager avec des utilisateurs spécifiques.
Rubriques
Étape 1 : Démarrage
Vous devez disposer de autorisations administrateur sur les nœuds gérés que vous souhaitez configurer ou vous devez bénéficier de l'autorisation appropriée dans AWS Identity and Access Management (IAM). Notez également que cet exemple utilise la région USA Est (Ohio) (us-east-2). Run Command est disponible dans les Régions AWS répertoriées dans Points de terminaison de service Systems Manager dans la Référence générale d'Amazon Web Services. Pour en savoir plus, consultez Configuration de nœuds gérés pour AWS Systems Manager.
Pour exécuter des commandes à l'aide de l'AWS CLI
Si vous ne l'avez pas déjà fait, installez et configurez l'AWS Command Line Interface (AWS CLI).
Pour de plus amples informations, consultez Installation ou mise à jour de la version la plus récente de l'AWS CLI.
-
Répertoriez tous les documents disponibles.
Cette commande répertorie tous les documents disponibles pour votre compte en fonction des autorisations IAM.
aws ssm list-documents
-
Vérifier qu'un nœud géré est prêt à recevoir les commandes.
La sortie de la commande suivante indique si les nœuds gérés sont en ligne.
-
Exécutez la commande suivante pour afficher les détails sur un nœud géré spécifique.
Note
Pour exécuter les commandes de cette procédure, remplacez l'instance et les ID de commande. Pour les appareils Core AWS IoT Greengrass gérés, utilisez mi-
ID_number
comme ID d'instance. L'ID de commande est renvoyé en réponse à send-command. Les ID d'instance sont disponibles depuis Fleet Manager, une fonctionnalité de AWS Systems Manager.
Étape 2 : Exécuter des scripts shell pour afficher les détails des ressources
Run Command et le document AWS-RunShellScript
vous permettent d'exécuter n'importe quel script ou commande sur un nœud géré comme si vous vous étiez connecté localement.
Afficher la description et les paramètres disponibles
Exécutez la commande suivante pour afficher la description du document JSON Systems Manager.
Utilisez la commande suivante afin d'afficher les paramètres disponibles et les détails les concernant.
Étape 3 : Envoyer des commandes simples à l'aide du document AWS-RunShellScript
Utilisez la commande suivante afin d'obtenir des informations IP pour un nœud géré Linux.
Si vous ciblez un nœud géré Windows Server, remplacez document-name
par AWS-RunPowerShellScript
et command
depuis ifconfig
par ipconfig
.
Obtenir des informations sur la commande avec des données de réponse
La commande suivante utilise l'ID de commande qui a été retourné par la commande précédente afin d'obtenir les détails et les données de réponse de l'exécution de la commande. Le système renvoie les données de réponse si la commande a été exécutée. Si l'exécution de la commande indique "Pending"
ou "InProgress"
, vous devrez l'exécuter à nouveau pour consulter les données de réponse.
Identification de l'utilisateur
La commande suivante affiche l'utilisateur par défaut qui exécute les commandes.
Obtenir le statut de la commande
La commande suivante utilise l'ID de commande afin d'obtenir le statut de l'exécution de la commande sur le nœud géré. Cet exemple utilise l'ID de commande qui a été renvoyé lors de la commande précédente.
Obtenir les détails de la commande
La commande suivante utilise l'ID de la commande précédente afin d'obtenir le statut de l'exécution de la commande par nœud géré.
Obtention d'informations sur la commande avec des données de réponse pour un nœud géré
La commande suivante renvoie la sortie de la demande aws ssm
send-command
initiale pour un nœud géré spécifique.
Afficher la version Python
La commande suivante retourne la version de Python exécutée sur un nœud.
Étape 4 : Exécuter un script Python simple en utilisant Run Command
La commande suivante exécute un simple script Python « Hello World » à l'aide de Run Command.
Étape 5 : exécutez un script Bash avec Run Command
Les exemples de cette section montrent l'exécution du script bash suivant avec Run Command.
Pour obtenir des exemples d'utilisation de Run Command pour exécuter des scripts stockés dans des emplacements distants, consultez Exécution de scripts à partir d'Amazon S3 et Exécution de scripts depuis GitHub.
#!/bin/bash yum -y update yum install -y ruby cd /home/ec2-user curl -O https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/install chmod +x ./install ./install auto
Ce script installe l'agent AWS CodeDeploy sur les instances Amazon Linux et Red Hat Enterprise Linux (RHEL), comme décrit dans Créer une instance Amazon EC2 pour CodeDeploy dans le Guide de l'utilisateur AWS CodeDeploy.
Le script installe l'agent CodeDeploy à partir d'un compartiment S3 géré par AWS dans la région USA Est (Ohio) (us-east-2), aws-codedeploy-us-east-2
.
Exécuter un script bash dans une commande AWS CLI
L'exemple suivant montre comment inclure le script bash dans une commande CLI en utilisant l'option --parameters
.
Exécuter un script bash dans un fichier JSON
Dans l'exemple suivant, le contenu du script bash est stocké dans un fichier JSON, et le fichier est inclus dans la commande en utilisant l'option --cli-input-json
.
L'exemple suivant montre le contenu du fichier installCodeDeployAgent.json
référencé.
{ "Parameters": { "commands": [ "#!/bin/bash", "yum -y update", "yum install -y ruby", "cd /home/ec2-user", "curl -O https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/install", "chmod +x ./install", "./install auto" ] } }