Amazon EC2 Simple Systems Manager (SSM) 代理程式是為 Simple Systems Manager 服務開發的軟體。 SSM 代理程式是稱為「運行命令」的功能的主要元件。
SSM 代理程式在 EC2 執行個體上執行,可讓您快速輕鬆地針對一個或多個執行個體執行遠端命令或腳本。代理程式使用 SSM 檔。當您執行命令時,實例上的代理程式會處理文件並按指定配置實例。目前,代理程式和 Run Command 可讓您使用 AWS-RunShellScript SSM 文件在實例上快速執行 Shell 腳本。 SSM 代理程式還支援會話管理器功能,讓您可以透過基於瀏覽器的互動式一鍵式 shell 或透過 AWS CLI 管理 Amazon EC2 執行個體。第一次在實例上啟動會話管理器會話時,代理程式會建立一個名為「ssm-user」的用戶,該用戶具有 sudo 或管理員權限。會話管理器會話將在此用戶的上下文中啟動。
使用 AWS CLI 的 SSM 運行指令演練
使用 AWS 控制台和 CLI 的會話管理器演練
SSM 運行命令故障排除 SSM 會話管理器故障排除
感謝您幫助我們改進 Systems Manager、Run Command 和 Session Manager。請將您的問題或意見傳送至 Systems Manager 論壇
安裝docker:安裝CentOS
打造形象
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
安裝 go 入門
安裝 rpm-build 和 rpmdevtools
交叉編譯SSM代理
執行make build
來建置適用於 Linux、Debian、Windows 環境的 SSM 代理程式。
運行make build-release
來建立代理並將其打包成 RPM、DEB 和 ZIP 套件。
建置完成後會產生以下資料夾:
bin/debian_386
bin/debian_amd64
bin/linux_386
bin/linux_amd64
bin/linux_arm
bin/linux_arm64
bin/windows_386
bin/windows_amd64
請依照使用者指南複製並安裝SSM代理
若要檢查整個模組,請呼叫lint-all
目標。這會在模組中的所有套件上執行 golangci-lint 。您可以使用.golangci.yml
檔案使用不同的 linter 設定 golangci-lint。
有關golangci-lint 安裝說明,請參閱https://golangci-lint.run/usage/install/ 有關golangci-lint 配置文件的更多信息,請參閱https://golangci-lint.run/usage/configuration/更多資訊使用的 linter 請參閱 https://golangci-lint.run/usage/linters/
若要使用供應商依賴項,建議的 GOPATH 格式為:
以下目標可用。每個都可以使用make
運行。
設定目標 | 描述 |
---|---|
build | (預設) build 為 Linux、Debian、Darwin 和 Windows amd64 和 386 環境建置代理 |
build-release | build-release 檢查程式碼樣式和覆蓋範圍,建立代理並將其打包成 RPM、DEB 和 ZIP 包 |
release | release 檢查程式碼風格和覆蓋率,運行測試,將所有相依性打包到 bin 資料夾。 |
package | package 套件 將結果建構成 RPM、DEB 和 ZIP 套件 |
pre-build | pre-build 會遍歷 Tools/src 資料夾以確保所有腳本檔案都是可執行的 |
checkstyle | checkstyle 運行 checkstyle 腳本 |
analyze-install | analyze-install 安裝靜態分析依賴項以供本地使用 |
analyze | analyze 運行靜態分析腳本以查找可能的漏洞 |
quick-integtest | quick-integtest 使用go test 運行標記有整合的所有測試 |
quick-test | quick-test 使用go test 運行所有測試,包括整合和單元測試 |
coverage | coverage 運行所有測試併計算程式碼覆蓋率 |
build-linux | build-linux 建置在 Linux amd64 環境中執行的代理 |
build-windows | build-windows 在 Windows amd64 環境中執行的代理 |
build-darwin | build-darwin 在 Darwin amd64 環境中執行的代理 |
build-linux-386 | build-linux-386 在 Linux 386 環境中執行的代理 |
build-windows-386 | build-windows-386 在 Windows 386 環境中執行的代理 |
build-darwin-386 | build-darwin-386 在 Darwin 386 環境中執行的代理 |
build-arm | build-arm 在arm環境中執行的代理 |
build-arm64 | build-arm64 在arm64環境中執行的代理 |
lint-all | lint-all 在所有套件上執行 golangci-lint。 golangci-lint 由 .golangci.yml 配置 |
package-rpm | package-rpm 建置代理並將其打包到基於 Linux amd64 的發行版的 RPM 套件中 |
package-deb | package-deb 建置代理並將其打包到基於 Debian amd64 的發行版的 DEB 套件中 |
package-win | package-win 建置代理並將其打包到 ZIP 套件中 基於 Windows amd64 的發行版 |
package-rpm-386 | package-rpm-386 建置代理並將其打包到基於 Linux 386 的發行版的 RPM 套件中 |
package-deb-386 | package-deb-386 建置代理並將其打包到基於 Debian 386 的發行版的 DEB 套件中 |
package-win-386 | package-win-386 建置代理並將其打包到基於 Windows 386 的發行版的 ZIP 套件中 |
package-rpm-arm64 | package-rpm-arm64 建置代理並將其打包到 RPM 套件中 基於 Linux arm64 的發行版 |
package-deb-arm | package-deb-arm 建置代理並將其打包到 DEB 套件中 基於 Debian arm 的發行版 |
package-deb-arm64 | package-deb-arm64 建置代理並將其打包到基於 Debian arm64 的發行版的 DEB 套件中 |
package-linux | package-linux 為基於 Linux 和 Debian 的發行版建立更新包 |
package-windows | package-windows 為基於 Windows 的發行版建立更新包 |
package-darwin | package-darwin 為基於 Darwin 的發行版建立更新包 |
get-tools | get-tools 使用go get get 取得 gocode 和 oracle |
clean | clean 刪除建置工件 |
歡迎貢獻與回饋!提案和拉取請求將被考慮並回覆。請參閱 CONTRIBUTING.md 檔案以取得更多資訊。
Amazon Web Services 目前不提供對此軟體的修改副本的支援。
若要為代理程式設定您自己的自訂配置:
SSM 代理程式原始碼發佈到 github 後,安裝套件可能需要長達 2 週的時間才能傳播到所有 AWS 區域。
以下命令可用於拉取VERSION
檔案並檢查某個區域中可用的最新代理程式。
curl https://s3.{region}.amazonaws.com/amazon-ssm-{region}/latest/VERSION
{region}
替換為us-east-1
等區域代碼。curl https://s3.{region}.amazonaws.com.cn/amazon-ssm-{region}/latest/VERSION
{region}
替換為區域代碼cn-north-1
、 cn-northwest-1
。curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/VERSION
Amazon SSM 代理程式根據 Apache 2.0 授權取得授權。