Exemplarische Vorgehensweise: Verwenden Sie das mit AWS CLIRun Command - AWS Systems Manager

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Exemplarische Vorgehensweise: Verwenden Sie das mit AWS CLIRun Command

Der folgende Beispiel-Walkthrough zeigt, wie Sie mithilfe der AWS Command Line Interface (AWS CLI) Informationen über Befehle und Befehlsparameter anzeigen, wie Sie Befehle ausführen und wie Sie den Status dieser Befehle anzeigen.

Wichtig

Nur vertrauenswürdige Administratoren sollten AWS Systems Manager vorkonfigurierte Dokumente in diesem Thema verwenden dürfen. Die in Systems-Manager-Dokumenten festgelegten Befehle oder Skripts werden mit Administratorberechtigungen auf Ihren verwalteten Knoten ausgeführt. Wenn ein Benutzer über die Berechtigung zum Ausführen der vordefinierten Systems-Manager-Dokumente (alle Dokumente, die mit AWS- beginnen) verfügt, hat dieser Benutzer auch Administratorzugriff auf den Knoten. Für alle anderen Benutzer sollten Sie restriktive Dokumente erstellen und sie mit bestimmten Benutzern teilen.

Schritt 1: Erste Schritte

Sie müssen entweder über Administratorberechtigungen auf dem verwalteten Knoten verfügen, den Sie konfigurieren möchten, oder Sie müssen über die geeignete Berechtigung in AWS Identity and Access Management (IAM) verfügen. Beachten Sie auch, dass in diesem Beispiel die Region USA Ost (Ohio) (us-east-2) verwendet. Run Command ist in den in Systems Manager AWS-Regionen aufgelisteten Dienstendpunkten in der Allgemeine Amazon Web Services-Referenzverfügbar. Weitere Informationen finden Sie unter Einrichtung verwalteter Knoten für AWS Systems Manager.

Um Befehle mit dem auszuführen AWS CLI
  1. Installieren und konfigurieren Sie AWS Command Line Interface (AWS CLI), wenn noch nicht erfolgt.

    Weitere Informationen finden Sie unter Installieren oder Aktualisieren der neuesten Version von AWS CLI.

  2. Listen Sie alle verfügbaren Dokumente auf.

    Mit diesem Befehl werden alle verfügbaren Dokumente für Ihr Konto basierend auf IAM Berechtigungen ausgeführt.

    aws ssm list-documents
  3. Überprüfen Sie, ob ein verwalteter Knoten zum Empfangen von Befehlen bereit ist.

    Die Ausgabe des folgenden Befehls zeigt, ob verwaltete Knoten online sind.

    Linux & macOS
    aws ssm describe-instance-information \ --output text --query "InstanceInformationList[*]"
    Windows
    aws ssm describe-instance-information ^ --output text --query "InstanceInformationList[*]"
  4. Verwenden Sie den folgenden Befehl, um weitere Details zu einem bestimmten verwalteten Knoten anzuzeigen.

    Anmerkung

    Ersetzen Sie die Instance und den Befehl IDs zur Ausführung der Befehle in dieser Anleitung Für verwaltete AWS IoT Greengrass -Core-Geräte, benutzen Sie die mi-ID_number zum Beispiel ID. Die Befehls-ID wird als Antwort an send-command zurückgegeben. Instanzen IDs sind erhältlich bei Fleet Manager, eine Fähigkeit von AWS Systems Manager..

    Linux & macOS
    aws ssm describe-instance-information \ --instance-information-filter-list key=InstanceIds,valueSet=instance-ID
    Windows
    aws ssm describe-instance-information ^ --instance-information-filter-list key=InstanceIds,valueSet=instance-ID

Schritt 2: Ausführen von Shell-Skripten zum Anzeigen von Ressourcendetails

Die Verwendung von Run Command und das AWS-RunShellScript Dokument, Sie können Befehle oder Skripts auf einem verwalteten Knoten ausführen, als ob Sie lokal angemeldet wären.

Anzeigen der Beschreibung und verfügbaren Parameter

Führen Sie den folgenden Befehl aus, um eine Beschreibung des Systems Manager JSON -Dokuments anzuzeigen.

Linux & macOS
aws ssm describe-document \ --name "AWS-RunShellScript" \ --query "[Document.Name,Document.Description]"
Windows
aws ssm describe-document ^ --name "AWS-RunShellScript" ^ --query "[Document.Name,Document.Description]"

Führen Sie den folgenden Befehl aus, um die verfügbaren Parameter und Details zu diesen Parametern anzuzeigen.

Linux & macOS
aws ssm describe-document \ --name "AWS-RunShellScript" \ --query "Document.Parameters[*]"
Windows
aws ssm describe-document ^ --name "AWS-RunShellScript" ^ --query "Document.Parameters[*]"

Schritt 3: Senden einfacher Befehle mit dem AWS-RunShellScript-Dokument

Führen Sie den folgenden Befehl aus, um IP-Informationen für einen Linux-verwalteten Knoten abzurufen.

Wenn Sie es auf eine abgesehen haben Windows Server verwalteter Knoten, ändern Sie document-name den Wert für AWS-RunPowerShellScript und ändern Sie den command Wert von ifconfig füripconfig.

Linux & macOS
aws ssm send-command \ --instance-ids "instance-ID" \ --document-name "AWS-RunShellScript" \ --comment "IP config" \ --parameters commands=ifconfig \ --output text
Windows
aws ssm send-command ^ --instance-ids "instance-ID" ^ --document-name "AWS-RunShellScript" ^ --comment "IP config" ^ --parameters commands=ifconfig ^ --output text
Abrufen der Befehlsinformation mit Antwortdaten

Mit dem folgenden Befehl wird die Befehls-ID verwendet, die vom vorherigen Befehl zurückgegeben wurde, um die Details und Antwortdaten der Ausführung des Befehls abzurufen. Das System gibt die Antwortdaten zurück, wenn der Befehl abgeschlossen ist. Wenn die Befehlsausführung "Pending" oder "InProgress" anzeigt, führen Sie diesen Befehl erneut aus, um die Antwortdaten zu sehen.

Linux & macOS
aws ssm list-command-invocations \ --command-id $sh-command-id \ --details
Windows
aws ssm list-command-invocations ^ --command-id $sh-command-id ^ --details

Benutzer identifizieren

Mit dem folgenden Befehl wird der Standard-Benutzer angezeigt, der die Befehle ausführt.

Linux & macOS
sh_command_id=$(aws ssm send-command \ --instance-ids "instance-ID" \ --document-name "AWS-RunShellScript" \ --comment "Demo run shell script on Linux managed node" \ --parameters commands=whoami \ --output text \ --query "Command.CommandId")
Abrufen des Befehlsstatus

Mit dem folgenden Befehl wird die Befehls-ID verwendet, um den Status der Befehlsausführung auf dem verwalteten Knoten abzurufen. In diesem Beispiel wird die Befehls-ID verwendet, die im vorherigen Befehl zurückgegeben wurde.

Linux & macOS
aws ssm list-commands \ --command-id "command-ID"
Windows
aws ssm list-commands ^ --command-id "command-ID"
Abrufen der Befehlsdetails

Mit dem folgenden Befehl wird die Befehls-ID vom vorherigen Befehl verwendet, um den Status der Befehlsausführung pro verwalteten Knoten abzurufen.

Linux & macOS
aws ssm list-command-invocations \ --command-id "command-ID" \ --details
Windows
aws ssm list-command-invocations ^ --command-id "command-ID" ^ --details
Abrufen von Befehlsinformationen mit Antwortdaten für einen bestimmten verwalteten Knoten

Mit dem folgenden Befehl wird die Ausgabe der ursprünglichen aws ssm send-command-Anforderung für einen bestimmten verwalteten Knoten zurückgegeben.

Linux & macOS
aws ssm list-command-invocations \ --instance-id instance-ID \ --command-id "command-ID" \ --details
Windows
aws ssm list-command-invocations ^ --instance-id instance-ID ^ --command-id "command-ID" ^ --details

Anzeigen der Python-Version

Mit dem folgenden Befehl wird die Version von Python zurückgegeben, die auf einem Knoten ausgeführt wird.

Linux & macOS
sh_command_id=$(aws ssm send-command \ --instance-ids "instance-ID" \ --document-name "AWS-RunShellScript" \ --comment "Demo run shell script on Linux Instances" \ --parameters commands='python -V' \ --output text --query "Command.CommandId") \ sh -c 'aws ssm list-command-invocations \ --command-id "$sh_command_id" \ --details \ --query "CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}"'

Schritt 4: Führen Sie ein einfaches Python-Skript aus mit Run Command

Der folgende Befehl führt ein einfaches Python-Skript „Hello World“ aus mit Run Command.

Linux & macOS
sh_command_id=$(aws ssm send-command \ --instance-ids "instance-ID" \ --document-name "AWS-RunShellScript" \ --comment "Demo run shell script on Linux Instances" \ --parameters '{"commands":["#!/usr/bin/python","print \"Hello World from python\""]}' \ --output text \ --query "Command.CommandId") \ sh -c 'aws ssm list-command-invocations \ --command-id "$sh_command_id" \ --details \ --query "CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}"'

Schritt 5: Führen Sie ein Bash-Skript aus mit Run Command

Die Beispiele in diesem Abschnitt zeigen, wie Sie das folgende Bash-Skript ausführen Run Command.

Für Beispiele für die Verwendung Run Command Informationen zur Ausführung von Skripts, die an Remote-Speicherorten gespeichert sind, siehe Ausführen von Skripts von Amazon S3 undSkripte ausführen von 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

Dieses Skript installiert den AWS CodeDeploy Agenten auf Amazon Linux und Red Hat Enterprise Linux (RHEL) Instances, wie unter EC2Amazon-Instance erstellen für CodeDeploy im AWS CodeDeploy Benutzerhandbuch beschrieben.

Das Skript installiert den CodeDeploy Agent von einem von AWS verwalteten S3-Bucket in der Region USA Ost (Ohio) (us-east-2). aws-codedeploy-us-east-2

Führen Sie ein Bash-Skript in einem AWS CLI -Befehl aus

Das folgende Beispiel zeigt, wie Sie das Bash-Skript mit der --parameters Option in einen CLI Befehl einbinden.

Linux & macOS
aws ssm send-command \ --document-name "AWS-RunShellScript" \ --targets '[{"Key":"InstanceIds","Values":["instance-id"]}]' \ --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"]}'

Führen Sie ein Bash-Skript in einer Datei aus JSON

Im folgenden Beispiel wird der Inhalt des Bash-Skripts in einer JSON Datei gespeichert, und die Datei wird mit der --cli-input-json Option in den Befehl aufgenommen.

Linux & macOS
aws ssm send-command \ --document-name "AWS-RunShellScript" \ --targets "Key=InstanceIds,Values=instance-id" \ --cli-input-json file://installCodeDeployAgent.json
Windows
aws ssm send-command ^ --document-name "AWS-RunShellScript" ^ --targets "Key=InstanceIds,Values=instance-id" ^ --cli-input-json file://installCodeDeployAgent.json

Der Inhalt der referenzierten installCodeDeployAgent.json-Datei ist im folgenden Beispiel dargestellt.

{ "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" ] } }