Cloud Assistant は、Elastic Computing Service (ECS) 向けのネイティブな自動運用保守ツールです。パスワードの使用、インスタンスへのログイン、ジャンプサーバーの使用なしで、ECS インスタンス上で Shell、PowerShell、Bat コマンドなどのバッチコマンドを実行できます。Cloud Assistant を使用して、自動運用保守スクリプトの実行、プロセスのポーリング、ソフトウェアのインストールまたはアンインストール、サービスの開始または停止、パッチまたはセキュリティ更新プログラムのインストールを行うことができます。
特徴
バッチ操作
Cloud Assistant エージェントがインストールされている複数のインスタンスでコマンドを実行できます。1 つのインスタンスでの実行は、他のインスタンスに影響しません。
ファイルのアップロード
Cloud Assistant を使用して、構成ファイルやスクリプトなどのローカルファイルを ECS インスタンスにアップロードできます。
パブリックコマンド
パブリックコマンドには、スクリプトまたは実行可能プログラムを含む複雑なスクリプトや Cloud Assistant プラグインが含まれます。パブリックコマンドを使用して、サーバーの構成、ヘルスチェックやセキュリティチェックの実行、アプリケーションのインストール、ファイルの処理、システムパッチのインストール、システム構成の変更、サービスやアプリケーションの管理を行うことができます。パブリックコマンドは、複雑な構成を迅速に完了し、運用保守の効率を大幅に向上させるのに役立ちます。
使いやすさ
カスタムパラメーターまたは組み込みパラメーターを使用して、コマンドを柔軟に構成できます。これにより、単一の Cloud Assistant コマンドを複数のシナリオで使用できます。
セキュリティと制御
Cloud Assistant は、それ自体で操作を開始することはありません。すべての操作を完全に制御できます。
シナリオ
Cloud Assistant は、デプロイメント、運用、メンテナンスのタスクを実行するのに役立ちます。これらのタスクには、以下が含まれますが、これらに限定されません。
自動運用保守スクリプトのアップロードと実行
インスタンス上で既存のスクリプトを実行する
ソフトウェア開発ライフサイクルの管理
コードまたはアプリケーションのデプロイ
プロセスのポーリング
パッチまたはセキュリティ更新プログラムのインストール
Object Storage Service (OSS) または Yellowdog Updater, Modified (YUM) リポジトリから更新を取得する
ホスト名またはユーザーのログインパスワードの変更
制限
インスタンスは [実行中] (
Running) であり、Cloud Assistant エージェントがインストールされている必要があります。Bat、PowerShell、または Shell スクリプトとカスタムパラメーターが Base64 エンコードされた後、次のサイズ制限が適用されます。
コマンドの作成: 合計サイズは 18 KB を超えることはできません。
コマンドをすぐに実行して保存する: 合計サイズは 18 KB を超えることはできません。
コマンドをすぐに実行するが保存しない: 合計サイズは 24 KB を超えることはできません。
ファイルのアップロード: ファイルサイズは 32 KB を超えることはできません。
コマンドには最大 20 個のカスタムパラメーターを含めることができます。
Cloud Assistant コマンドは、次のオペレーティングシステムでのみ実行できます。
Alibaba Cloud Linux
CentOS 6、7、8 以降
CoreOS
Debian 8、9、10 以降
OpenSUSE
RedHat 5、6、7 以降
説明RedHat の場合、RPM パッケージをダウンロードして Cloud Assistant エージェントをインストールする必要があります。詳細については、「Cloud Assistant エージェントをインストールする」をご参照ください。
SUSE Linux Enterprise Server 11、12、15 以降
Ubuntu 12、14、16、18 以降
FreeBSD 11、12、13、14 以降
Windows Server 2012、2016、2019 以降
説明Cloud Assistant エージェントは、パブリックイメージから作成された ECS インスタンスにデフォルトでインストールされます。
カスタムイメージまたは Alibaba Cloud Marketplace のイメージから作成されたインスタンスの場合、まずオペレーティングシステムが Cloud Assistant をサポートしていることを確認してから、Cloud Assistant エージェントをインストールする必要があります。詳細については、「Cloud Assistant エージェントをインストールする」をご参照ください。
サポートされている機能とバージョン
次の表に、Cloud Assistant がサポートする機能と、各機能に必要な Cloud Assistant エージェントの最小バージョンを示します。
クラウドアシスタントでサポートされている機能 | 最小エージェントバージョン (Linux インスタンス) | 最小エージェントバージョン (Windows インスタンス) |
Cloud Assistant のハートビートを報告する | 1.0.2.458 | 1.0.0.149 |
ファイルの送信 | 1.0.2.569 | 1.0.0.149 |
コマンドを実行するユーザー名を指定する | 2.2.0.106 | 2.1.0.50 |
インスタンスの次回起動時に実行するコマンドを設定する | 2.2.0.46 | 2.1.0.50 |
インスタンスの起動ごとに実行するコマンドを設定する | ||
Session Manager のサポート | 2.2.3.196 | 2.1.3.196 |
スケジュールされたタスクの実行スケジュールで rate 式と at 式を使用する | 2.2.3.282 | 2.1.3.282 |
スケジュールされたタスクの cron 式で年またはタイムゾーンを指定する | 2.2.3.282 | 2.1.3.282 |
組み込み環境パラメーターのサポート | 2.2.3.309 | 2.1.3.309 |
インスタンス名を組み込み環境パラメーターとして使用する | 2.2.3.344 | 2.1.3.344 |
特別な終了コードを使用してインスタンスを停止または再起動する | 2.2.3.317 | 2.1.3.317 |
コンテナー名を指定してコンテナー内でコマンドを実行する | 2.2.3.344 | 2.1.3.344 |
コンテナー ID を指定してコンテナー内でコマンドを実行する | 2.2.3.344 | 2.1.3.344 |
Cloud Assistant インストールディレクトリ内のファイル
Linux インスタンス
Linux オペレーティングシステムを実行するインスタンスでは、Cloud Assistant の主要なファイルとディレクトリは /usr/local/share/aliyun-assist/ にあります。
/usr/local/share/aliyun-assist/
2.x.x.xxx/ (例: 2.2.4.965) - 特定のバージョンの Cloud Assistant のインストールディレクトリ。
acs-plugin-manager: Cloud Assistant プラグインマネージャープログラム。
aliyun_assist_update: Cloud Assistant アップグレードプログラム。
aliyun_installer: 初期のコンポーネントインストーラー。これは非推奨となり、acs-plugin-manager に置き換えられました。
aliyun-service: Cloud Assistant エージェントのメインプログラム。
assist_daemon: Cloud Assistant デーモンプロセス。aliyun-service メインプログラムの安定した動作を保証します。
config/: 構成ファイルのディレクトリ。
GlobalSignRootCA.crt: Cloud Assistant サーバーとの安全な HTTPS 通信のためのルート証明書ファイル。
hash_file: プログラムファイルのハッシュレコード。コアファイルが改ざんされていないことを確認するためのファイル整合性チェックに使用されます。
init/: インストールおよびアンインストールスクリプトのディレクトリ。
clean: クリーンアップスクリプト。Cloud Assistant の構成とファイルを削除します。
install: インストールスクリプト。
uninstall: アンインストールスクリプト。
version: Cloud Assistant クライアントのバージョン情報を記録するファイル。
log/: ログファイルのディレクトリ。
aliyun_assist_main.log: その日の Cloud Assistant の実行ログを記録します。
aliyun_assist_main.log.YYYYMMDD: 日付別にアーカイブされた履歴ログファイル。
plugin/: プリインストール済みプラグインのディレクトリ。
ACS-ECS-SysInfoGatherer: Cloud Assistant データ収集プラグイン。
cache/: キャッシュファイルのディレクトリ。
state_configs.json: Cloud Assistant エージェント用のローカルにキャッシュされた Operation Orchestration Service (OOS) Inventory 収集構成ファイル。
config/: グローバル構成ファイルのディレクトリ。
task_sign_certs/: Cloud Assistant エージェントがタスク署名の検証に使用する、ローカルにキャッシュされた公開鍵。
hybrid/: マネージドインスタンス登録情報のディレクトリ。
hardwareHash: インスタンスがマネージドインスタンスとして登録されると、Cloud Assistant エージェントはこのファイルを生成して、マシンを識別するハードウェア情報を記録します。
plugin/: Cloud Assistant プラグインのディレクトリ。
installed_plugins.db: プラグインのデータを記録します。
work/: 実行ファイルが保存されるディレクトリ。
script/: Cloud Assistant 実行ファイルが保存されるディレクトリ。
注: バージョン 2.x.3.704 以降、セキュリティを強化するため、Cloud Assistant はデフォルトで実行スクリプトをディスクに自動的に保存しなくなりました。このディレクトリで実行されたスクリプトファイルを保存して表示するには、この機能を手動で有効にする必要があります。
region-id: インスタンスのリージョン情報を記録するファイル。
Windows インスタンス
Windows オペレーティングシステムを実行するインスタンスでは、Cloud Assistant の主要なファイルとディレクトリは C:\ProgramData\aliyun\assist\ にあります。
C:\ProgramData\aliyun\assist\
2.x.x.xxx/ (例: 2.1.4.965) - 特定のバージョンの Cloud Assistant のインストールディレクトリ。
acs-plugin-manager.exe: Cloud Assistant プラグインマネージャープログラム。
aliyun_assist_update.exe: Cloud Assistant アップグレードプログラム。
aliyun_installer.exe: Cloud Assistant インストーラープログラム。
aliyun_assist_service.exe: Cloud Assistant サービスのメインプログラム。
install.bat: Cloud Assistant インストールスクリプト。
install.exe: Cloud Assistant インストーラープログラム。
PatchGo.dll: Windows Server 2008 環境用のパッチ。Go ランタイムに起因するクロックドリフトの問題を防ぎます。
version.ini: Cloud Assistant のバージョン情報を記録します。
config/: 構成ファイルのディレクトリ。
GlobalSignRootCA.crt: Cloud Assistant サーバーとの通信に必要な証明書ファイル。
hash_file: プログラムファイルのハッシュレコード。ファイル整合性検証に使用されます。
log/: ログファイルのディレクトリ。
aliyun_assist_main.log: その日の実行ログ。
aliyun_assist_main.log.YYYYMMDD: 日付別にアーカイブされた履歴ログファイル。
plugin/: プリインストール済みおよびインストール済みのプラグインのディレクトリ。
ACS-ECS-SysInfoGatherer: データ収集プラグイン。
SessionManager: パスワードなしのログイン機能を実装するプラグイン。
installed_plugins.db: Cloud Assistant プラグインに関する情報。
cache/: キャッシュファイルのディレクトリ。
state_configs.json: Cloud Assistant エージェント用のローカルにキャッシュされた OOS Inventory 収集構成ファイル。
config/: 構成ファイルのディレクトリ。
task_sign_certs/: Cloud Assistant エージェントによるタスク署名検証用のローカルにキャッシュされた公開鍵。
hybrid/: マネージドインスタンス情報のディレクトリ。
plugin/: プラグインデータのディレクトリ。
installed_plugins.db: プラグインのデータ。
work/: 実行ファイルが保存されるディレクトリ。
script/: Cloud Assistant によって実行されるスクリプトファイルが保存されるディレクトリ。
注: バージョン 2.x.3.704 以降、スクリプトファイルはデフォルトでこのディレクトリに自動的に保存されません。この機能を手動で有効にする必要があります。
config.ini: Cloud Assistant のバージョンなどの構成情報を記録するファイル。
region-id: インスタンスのリージョン情報を記録するファイル。
version: Cloud Assistant のバージョン情報を記録するファイル。
課金
Cloud Assistant は無料のサービスです。
ただし、Cloud Assistant を使用してデプロイまたは管理するクラウドリソースに対して課金される場合があります。ECS リソースの課金の詳細については、「課金の概要」をご参照ください。
リソース使用量
次の表に、Cloud Assistant エージェントが使用するホストリソースを示します。
ホストリソース | Linux オペレーティングシステム | Windows オペレーティングシステム |
CPU | 平均 CPU 使用率は 1% 未満です。 | |
物理メモリ | 約 20 MB | 約 30 MB |
ディスク I/O | 安定した操作中のディスク I/O は最小限です。アップグレード パッケージのダウンロードやコマンド スクリプトの保存などのシナリオでのみ発生します。 | |
ネットワーク I/O | 安定した操作中のネットワーク I/O は最小限です。主に、ハートビートのレポートなどのタスクに使用されます。 | |
用語
次の表に、Cloud Assistant に関連する一般的な用語を示します。
用語 | 説明 |
クラウドアシスタント | ツールの正式名称。ECS インスタンスおよび ECS ベアメタルインスタンスで定期的なメンテナンスタスクを自動的かつリモートで実行するのに役立ちます。Cloud Assistant は、すべての Alibaba Cloud リージョンで利用できます。 |
Cloud Assistant エージェント | ECS インスタンスにインストールされる軽量プラグイン。すべてのコマンドは、Cloud Assistant エージェントを介してインスタンスで実行されます。
|
クラウドアシスタントデーモンプロセス | Cloud Assistant エージェントのリソース消費を監視し、Cloud Assistant エージェントの実行ステータスを報告し、Cloud Assistant エージェントがクラッシュしたときに Cloud Assistant エージェントを再起動するために使用されます。
説明 Cloud Assistant デーモンプロセスは、Linux オペレーティングシステムでのみサポートされています。 |
タスク実行パス | Cloud Assistant がコマンドを実行する前にインスタンス上のファイルとして保存するパス。具体的なパスは次のとおりです。
|
コマンド | インスタンスで実行される特定の操作 (Shell スクリプトや PowerShell スクリプトなど)。 |
カスタムパラメーター | コマンドで {{key}} 形式で定義する変数。コマンドを実行するときに、{{"key":"value"}} 形式でカスタムパラメーターの値を設定できます。クォータは、リージョンに持つことができる Cloud Assistant コマンドの数を制限します。コマンドをより柔軟にし、複数のシナリオに適用できるように、カスタムパラメーターを設定することをお勧めします。組み込み環境パラメーターをカスタムパラメーターとして指定することもできます。コマンドを実行するときに、パラメーターに手動で値を割り当てる必要はありません。Cloud Assistant は、環境からの対応する値に自動的に置き換えます。 |
1 回限りの実行 | 1 つ以上のインスタンスでのコマンドの実行。これは呼び出し ( |
スケジュールされた実行 | 1 つ以上のインスタンスでコマンドを実行する場合、スケジュールまたは間隔を指定してコマンドプロセスを実行できます。 |
コマンド実行ステータス
単一コマンドの実行ステータス
次の表では、インスタンスで実行されたコマンドのインスタンスレベルのステータスについて説明します。これらのステータスは、DescribeInvocations の InvokeInstance 配下にある InvocationStatus フィールド、または DescribeInvocationResults の InvocationStatus フィールドに対応します。
API ステータス | ステータス | 説明 |
| 送信中 | システムがコマンドを検証または送信しています。 |
| 検証に失敗しました | 指定されたコマンドタイプまたはパラメータが無効です。 |
| 送信に失敗しました | インスタンスへのコマンドの送信に失敗しました。インスタンスは実行中状態である必要があり、コマンドは 1 分以内に送信される必要があります。 |
| 実行中 | コマンドは実行中です。 |
| 成功 |
|
| 実行完了、ゼロ以外の終了コード |
|
| 実行エラー | コマンドの実行中に例外が発生し、コマンドを続行できません。 |
| 実行がタイムアウトしました | コマンドの実行がタイムアウトしました。 |
| キャンセル済み | コマンドの実行がキャンセルされ、コマンドは開始されませんでした。 |
| 停止中 | コマンドを停止中です。 |
| 停止済み | コマンドは停止されました。 |
| 終了 | コマンドは実行時に終了しました。 |
| 実行待ち | スケジュールされたコマンドは実行を待機しています。 |
バッチコマンド実行のステータス
バッチ実行またはスケジュールされた実行をより適切に管理するために、全体的な実行ステータス、インスタンスレベルの実行ステータス、および実行レコードレベルのステータスに基づいてコマンド実行ライフサイクルを管理できます。全体的な実行ステータスは、DescribeInvocations 応答の Invocation オブジェクトの InvocationStatus フィールドに対応します。次の図は、ステータスレベル間の関係を示しています。
次の表は、複数のインスタンスでコマンドが実行されたときの全体的な実行ステータスを示しています。
API ステータス | ステータス | 説明 |
| システムがコマンドを検証または送信しています | 少なくとも 1 つのインスタンスでコマンド実行ステータスが |
| スケジュールされたコマンドが送信され、実行を待っています | 少なくとも 1 つのインスタンスでコマンド実行ステータスが |
| コマンドはインスタンスで実行中です | 少なくとも 1 つのインスタンスでコマンド実行ステータスが |
| コマンドは正常に実行されました | すべてのインスタンスでのコマンド実行ステータスが
|
| コマンドの実行に失敗しました | すべてのインスタンスでのコマンド実行ステータスが
|
| タスクは停止中です | 少なくとも 1 つのインスタンスでコマンド実行ステータスが |
| タスクは停止しました | すべてのインスタンスでのコマンド実行ステータスが
|
| タスクは一部のインスタンスで成功し、他のインスタンスで失敗しました | すべてのインスタンスでコマンドの実行ステータスが |
RAM ユーザーへの権限付与
Alibaba Cloud アカウントは、アカウント内のすべてのリソースに対する完全な権限を持っています。Alibaba Cloud アカウントとクラウドリソースのセキュリティを確保するため、必要な場合を除き、Alibaba Cloud アカウントを使用して操作を実行することは避けてください。代わりに Resource Access Management (RAM) ユーザーを使用することをお勧めします。Cloud Assistant を使用するには、RAM ユーザーに必要な権限が付与されている必要があります。RAM ユーザーに Cloud Assistant を使用する権限を付与する方法の詳細については、「RAM ユーザーに Cloud Assistant を使用する権限を付与する」をご参照ください。
クラウドアシスタントを使用する
ECS コンソールで、または API を呼び出すことによって Cloud Assistant を使用できます。
シナリオ | 参照 | 関連 API |
Cloud Assistant エージェントは、2017 年 12 月 1 日以降にパブリックイメージから作成された ECS インスタンスにデフォルトでプリインストールされています。一部の ECS インスタンスでは、引き続き自分でインストールする必要がある場合があります。 | 詳細については、「クラウドアシスタントクライアントをインストールする」をご参照ください。 | |
プログラムから API を呼び出します。 | 該当なし | |
クラウドアシスタントコマンドを作成します。 | 詳細については、「コマンドを作成する」をご参照ください。 | |
作成したコマンドをターゲット ECS インスタンスで実行します。 | 詳細については、「コマンドを実行する」をご参照ください。 | |
コマンドの実行ステータスと結果を表示します。実行結果は、指定された ECS インスタンスでの実際の出力です。 | ||
作成したコマンドを変更します。コマンド名と説明を変更できます。 | 該当なし | |
Cloud Assistant コマンドに新しいバージョンを追加します。または、名前、説明、タイプ、内容、実行パス、タイムアウト期間など、コマンドのより多くのプロパティを変更します。 | 詳細については、「コマンドを複製する」をご参照ください。 | 該当なし |
進行中のコマンドプロセスを停止します。 | 詳細については、「コマンドを停止する」をご参照ください。 | |
不要になった Cloud Assistant コマンドを削除します。これにより、コマンドクォータに達するのを防ぎ、新しいコマンドの作成に影響を与えなくなります。 | 詳細については、「コマンドを削除する」をご参照ください。 |