Amazon EC2 Simple Systems Manager (SSM) エージェントは、Simple Systems Manager サービス用に開発されたソフトウェアです。 SSM エージェントは、Run Command と呼ばれる機能の主要コンポーネントです。
SSM エージェントは EC2 インスタンス上で実行され、1 つ以上のインスタンスに対してリモート コマンドやスクリプトを迅速かつ簡単に実行できます。エージェントは SSM ドキュメントを使用します。コマンドを実行すると、インスタンス上のエージェントがドキュメントを処理し、指定されたとおりにインスタンスを構成します。現在、エージェントと Run Command を使用すると、AWS-RunShellScript SSM ドキュメントを使用してインスタンス上でシェル スクリプトを迅速に実行できます。 SSM エージェントは、インタラクティブなワンクリックのブラウザベースのシェルまたは AWS CLI を通じて Amazon EC2 インスタンスを管理できるセッションマネージャー機能も有効にします。インスタンス上で初めてセッション マネージャー セッションが開始されると、エージェントは sudo または管理者権限を持つ「ssm-user」というユーザーを作成します。 Session Manager セッションは、このユーザーのコンテキストで起動されます。
AWS CLI を使用した SSM 実行コマンドのチュートリアル
AWS コンソールと CLI を使用したセッションマネージャーのチュートリアル
SSM Run Command のトラブルシューティング SSM Session Manager のトラブルシューティング
Systems Manager、Run Command、Session Manager の改善にご協力いただきありがとうございます。ご質問やコメントは Systems Manager フォーラムに送信してください。
ドッカーのインストール: 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 するには、 lint-all
ターゲットを呼び出します。これにより、モジュール内のすべてのパッケージに対して golangci-lint が実行されます。 .golangci.yml
ファイルを使用して、さまざまなリンターで golangci-lint を構成できます。
golangci-lint のインストール手順については、https://golangci-lint.run/usage/install/ を参照してください。 golangci-lint 構成ファイルの詳細については、https://golangci-lint.run/usage/configuration/ を参照してください。使用されるリンターは 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 エージェントを構築し、それを DEB パッケージにパッケージ化します Debian amd64 ベースのディストリビューション |
package-win | package-win エージェントを構築し、それを ZIP パッケージにパッケージ化します。 Windows amd64 ベースのディストリビューション |
package-rpm-386 | package-rpm-386 エージェントを構築し、Linux 386 ベースのディストリビューション用の RPM パッケージにパッケージ化します。 |
package-deb-386 | package-deb-386 エージェントをビルドし、DEB パッケージ Debian 386 ベースのディストリビューションにパッケージ化します。 |
package-win-386 | package-win-386 エージェントを構築し、それを ZIP パッケージにパッケージ化します。 Windows 386 ベースのディストリビューション |
package-rpm-arm64 | package-rpm-arm64 エージェントを構築し、それを RPM パッケージにパッケージ化します Linux arm64 ベースのディストリビューション |
package-deb-arm | package-deb-arm エージェントを構築し、それを DEB パッケージにパッケージ化します Debian arm ベースのディストリビューション |
package-deb-arm64 | package-deb-arm64 エージェントを構築し、それを DEB パッケージにパッケージ化します Debian arm64 ベースのディストリビューション |
package-linux | package-linux Linux および Debian ベースのディストリビューション用の更新パッケージを作成します |
package-windows | package-windows Windows ベースのディストリビューション用の更新パッケージを作成します |
package-darwin | package-darwin Darwin ベースのディストリビューション用の更新パッケージを作成します |
get-tools | get-tools go get 使用して gocode と oracle を取得します |
clean | clean ビルドアーティファクトを削除します |
貢献やフィードバックは大歓迎です!提案とプルリクエストは検討され、返答されます。詳細については、CONTRIBUTING.md ファイルを参照してください。
アマゾン ウェブ サービスは現在、このソフトウェアの修正コピーに対するサポートを提供していません。
エージェントに独自のカスタム構成をセットアップするには:
SSM エージェントのソース コードが github にリリースされた後、インストール パッケージがすべての AWS リージョンに伝播されるまでに最大 2 週間かかる場合があります。
次のコマンドを使用して、 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 ライセンスに基づいてライセンスされています。