Der Amazon EC2 Simple Systems Manager (SSM) Agent ist eine Software, die für den Simple Systems Manager Service entwickelt wurde. Der SSM-Agent ist die Hauptkomponente einer Funktion namens „Run Command“.
Der SSM-Agent läuft auf EC2-Instanzen und ermöglicht Ihnen die schnelle und einfache Ausführung von Remote-Befehlen oder -Skripten für eine oder mehrere Instanzen. Der Agent verwendet SSM-Dokumente. Wenn Sie einen Befehl ausführen, verarbeitet der Agent auf der Instanz das Dokument und konfiguriert die Instanz wie angegeben. Derzeit ermöglichen Ihnen der Agent und der Ausführungsbefehl die schnelle Ausführung von Shell-Skripten auf einer Instanz mithilfe des AWS-RunShellScript-SSM-Dokuments. SSM Agent aktiviert außerdem die Session Manager-Funktion, mit der Sie Ihre Amazon EC2-Instanz über eine interaktive, browserbasierte Ein-Klick-Shell oder über die AWS CLI verwalten können. Wenn eine Session Manager-Sitzung zum ersten Mal auf einer Instanz gestartet wird, erstellt der Agent einen Benutzer namens „ssm-user“ mit Sudo- oder Administratorrechten. Session Manager-Sitzungen werden im Kontext dieses Benutzers gestartet.
Exemplarische Vorgehensweise zum SSM-Ausführungsbefehl mithilfe der AWS CLI
Exemplarische Vorgehensweise für Session Manager mit der AWS-Konsole und der CLI
Fehlerbehebung beim SSM-Ausführungsbefehl. Fehlerbehebung beim SSM-Sitzungsmanager
Vielen Dank, dass Sie uns dabei geholfen haben, Systems Manager, Run Command und Session Manager zu verbessern. Bitte senden Sie Ihre Fragen oder Kommentare an die Systems Manager-Foren
Docker installieren: CentOS installieren
Bild erstellen
docker build -t ssm-agent-build-image .
docker run -it --rm --name ssm-agent-build-container -v `pwd`:/amazon-ssm-agent ssm-agent-build-image make build-release
Installieren Sie los. Erste Schritte
Installieren Sie rpm-build und rpmdevtools
Cross-Compile-SSM-Agent
Führen Sie make build
aus, um den SSM-Agenten für die Linux-, Debian- und Windows-Umgebung zu erstellen.
Führen Sie make build-release
aus, um den Agenten zu erstellen und ihn außerdem in ein RPM-, DEB- und ZIP-Paket zu packen.
Die folgenden Ordner werden generiert, wenn der Build abgeschlossen ist:
bin/debian_386
bin/debian_amd64
bin/linux_386
bin/linux_amd64
bin/linux_arm
bin/linux_arm64
bin/windows_386
bin/windows_amd64
Bitte folgen Sie der Bedienungsanleitung, um den SSM-Agenten zu kopieren und zu installieren
Um das gesamte Modul zu linten, rufen Sie das Ziel lint-all
auf. Dadurch wird golangci-lint für alle Pakete im Modul ausgeführt. Sie können golangci-lint mithilfe der Datei .golangci.yml
mit verschiedenen Linters konfigurieren.
Anweisungen zur Installation von golangci-lint finden Sie unter https://golangci-lint.run/usage/install/. Weitere Informationen zur golangci-lint-Konfigurationsdatei finden Sie unter https://golangci-lint.run/usage/configuration/. Weitere Informationen zu Die verwendeten Linters finden Sie unter https://golangci-lint.run/usage/linters/
Um Herstellerabhängigkeiten zu verwenden, lautet das empfohlene GOPATH-Format :
Die folgenden Ziele sind verfügbar. Jedes kann mit make
ausgeführt werden.
Ziel erstellen | Beschreibung |
---|---|
build | (Standard) build erstellt den Agenten für Linux-, Debian-, Darwin- und Windows-amd64- und 386-Umgebungen |
build-release | build-release prüft Codestil und -abdeckung, erstellt den Agenten und verpackt ihn auch in ein RPM-, DEB- und ZIP-Paket |
release | release prüft Codestil und -abdeckung, führt Tests durch und packt alle Abhängigkeiten in den Bin-Ordner. |
package | package werden in ein RPM-, DEB- und ZIP-Paket umgewandelt |
pre-build | pre-build durchsucht den Ordner Tools/src, um sicherzustellen, dass alle Skriptdateien ausführbar sind |
checkstyle | checkstyle führt das checkstyle-Skript aus |
analyze-install | analyze-install installiert statische Analyseabhängigkeiten für die lokale Verwendung |
analyze | analyze führt ein statisches Analyseskript aus, um mögliche Schwachstellen zu finden |
quick-integtest | quick-integtest führt alle mit Integration markierten Tests mit go test aus |
quick-test | quick-test führt alle Tests einschließlich Integrations- und Unit-Tests mit go test durch |
coverage | coverage führt alle Tests durch und berechnet die Codeabdeckung |
build-linux | build-linux erstellt den Agenten für die Ausführung in der Linux-amd64-Umgebung |
build-windows | build-windows erstellt den Agenten für die Ausführung in der Windows-amd64-Umgebung |
build-darwin | build-darwin erstellt den Agenten für die Ausführung in der Darwin-amd64-Umgebung |
build-linux-386 | build-linux-386 erstellt den Agenten für die Ausführung in der Linux 386-Umgebung |
build-windows-386 | build-windows-386 erstellt den Agenten für die Ausführung in der Windows 386-Umgebung |
build-darwin-386 | build-darwin-386 erstellt den Agenten für die Ausführung in der Darwin 386-Umgebung |
build-arm | build-arm erstellt den Agenten für die Ausführung in der Arm-Umgebung |
build-arm64 | build-arm64 erstellt den Agenten für die Ausführung in der arm64-Umgebung |
lint-all | lint-all führt golangci-lint auf allen Paketen aus. golangci-lint wird durch .golangci.yml konfiguriert |
package-rpm | package-rpm erstellt den Agenten und verpackt ihn in ein RPM-Paket für Linux AMD64-basierte Distributionen |
package-deb | package-deb erstellt den Agenten und verpackt ihn in ein DEB-Paket für Debian-AMD64-basierte Distributionen |
package-win | package-win erstellt den Agenten und verpackt ihn in ein ZIP-Paket für Windows AMD64-basierte Distributionen |
package-rpm-386 | package-rpm-386 erstellt den Agenten und verpackt ihn in ein RPM-Paket für Linux 386-basierte Distributionen |
package-deb-386 | package-deb-386 erstellt den Agenten und verpackt ihn in ein DEB-Paket für Debian 386-basierte Distributionen |
package-win-386 | package-win-386 erstellt den Agenten und verpackt ihn in ein ZIP-Paket für Windows 386-basierte Distributionen |
package-rpm-arm64 | package-rpm-arm64 erstellt den Agenten und verpackt ihn in ein RPM-Paket für Linux-Arm64-basierte Distributionen |
package-deb-arm | package-deb-arm erstellt den Agenten und verpackt ihn in ein DEB-Paket für Debian-Arm-basierte Distributionen |
package-deb-arm64 | package-deb-arm64 erstellt den Agenten und verpackt ihn in ein DEB-Paket für Debian-Arm64-basierte Distributionen |
package-linux | package-linux erstellt Update-Pakete für Linux- und Debian-basierte Distributionen |
package-windows | package-windows erstellt Update-Pakete für Windows-basierte Distributionen |
package-darwin | package-darwin erstellt Update-Pakete für Darwin-basierte Distributionen |
get-tools | get-tools ruft Gocode und Oracle mit go get |
clean | clean entfernt Build-Artefakte |
Beiträge und Feedback sind willkommen! Vorschläge und Pull-Requests werden berücksichtigt und beantwortet. Weitere Informationen finden Sie in der Datei CONTRIBUTING.md.
Amazon Web Services bietet derzeit keinen Support für modifizierte Kopien dieser Software.
So richten Sie Ihre eigene benutzerdefinierte Konfiguration für den Agenten ein:
Nachdem der SSM-Agent-Quellcode auf Github veröffentlicht wurde, kann es bis zu zwei Wochen dauern, bis die Installationspakete in allen AWS-Regionen verbreitet werden.
Mit den folgenden Befehlen können Sie die VERSION
Datei abrufen und den neuesten in einer Region verfügbaren Agenten überprüfen.
curl https://s3.{region}.amazonaws.com/amazon-ssm-{region}/latest/VERSION
{region}
durch einen Regionalcode wie us-east-1
.curl https://s3.{region}.amazonaws.com.cn/amazon-ssm-{region}/latest/VERSION
{region}
durch den Regionalcode cn-north-1
, cn-northwest-1
.curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/VERSION
Der Amazon SSM Agent ist unter der Apache 2.0-Lizenz lizenziert.