Cloud Assistant の終了コードを使用して Elastic Compute Service (ECS) インスタンスを停止または再起動します。この操作には、コンソール、OpenAPI、および CloudOps Orchestration Service (OOS) によるバッチ操作のオプションがあります。
前提条件
-
インスタンスは実行中の状態です。
-
ターゲットインスタンスに Cloud Assistant エージェントがインストールされていること。ステータスの確認については、「Cloud Assistant のステータスの表示」をご参照ください。エージェントがインストールされていない場合は、「Cloud Assistant エージェントのインストール」をご参照ください。
(推奨) 終了コードを使用したインスタンスの停止または再起動
Cloud Assistant コマンドの末尾に終了コードを追加することで、インスタンスを停止または再起動できます。終了コードがない場合、Cloud Assistant エージェントは実行結果を報告できず、コマンドのステータスが正しく更新されないことがあります。
ターゲットインスタンスの Cloud Assistant エージェントは、以下のバージョンである必要があります。
-
Linux: 2.2.3.317
-
Windows: 2.2.3.317
エラーが発生した場合は、Cloud Assistant エージェントを最新バージョンに更新してください。詳細については、「Cloud Assistant エージェントのアップグレードまたは自動アップグレードの無効化」をご参照ください。
-
ECS コンソール - ECS クラウドアシスタントに移動します。
上部メニューで、対象リソースのリージョンとリソースグループを選択します。
-
コマンドの作成/実行をクリックします。
-
コマンド情報 セクションで、パラメーターを設定します。詳細については、「コマンドの作成と実行」をご参照ください。
-
コマンド の最後に、対応する終了コードを追加します。
-
インスタンスを停止するには、以下のいずれかの終了コードを使用します。
オペレーティングシステム
終了コード
コマンド例
Linux
193
# 終了コード 193 を返すことで、インスタンスを停止するアクションがトリガーされます。 exit 193Windows
3009
# 終了コード 3009 を返すことで、インスタンスを停止するアクションがトリガーされます。 exit 3009 -
インスタンスを再起動するには、以下のいずれかの終了コードを使用します。
オペレーティングシステム
終了コード
コマンド例
Linux
194
# 終了コード 194 を返すことで、インスタンスを再起動するアクションがトリガーされます。 exit 194Windows
3010
# 終了コード 3010 を返すことで、インスタンスを再起動するアクションがトリガーされます。 exit 3010
-
-
インスタンスの選択 または マネージドインスタンスの選択 セクションで、コマンドを実行するインスタンスを選択します。
説明マネージドインスタンスは、Alibaba Cloud が提供するものではなく、Cloud Assistant によって管理されるインスタンスです。詳細については、「Alibaba Cloud マネージドインスタンス」をご参照ください。
-
実行して保存 または 実行 をクリックすると、コマンドがすぐに実行されます。
OpenAPI を使用したインスタンスのバッチ再起動
ローカルの Linux 環境で Python コードを実行して OpenAPI を呼び出し、コマンドを実行することでインスタンスをバッチで再起動します。
-
必要な情報を準備します。
-
RAM ユーザーの
AccessKeyペアを取得します。詳細については、「AccessKey ペアの作成」をご参照ください。 -
DescribeRegionsAPI を呼び出してリージョンのリストを取得します。詳細については、「DescribeRegions」をご参照ください。 -
DescribeInstancesAPI を呼び出して、指定された条件を満たすインスタンスをフィルタリングします。詳細については、「DescribeInstances」をご参照ください。
-
-
ローカル環境を設定し、サンプルコードを実行します。
-
Alibaba Cloud SDK for Python をインストールまたはアップグレードします。
sudo pip install --upgrade alibabacloud_ecs20140526 -
.pyファイルを作成し、以下のサンプルコードを追加します。クリックしてサンプルコードを表示
サンプルコード内の以下の値を、ご自身の値に置き換えてください。
-
AccessKey ID:
access_key = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] -
AccessKey シークレット:
access_key_secret = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] -
リージョン ID:
region_id = '<yourRegionId>' -
インスタンス ID:
ins_ids= ["i-bp185fcs****","i-bp14wwh****","i-bp13jbr****"]
-
-
.pyファイルを実行します。次の出力は、その結果です。コマンド
helloworldは 3 つのインスタンスで実行され、インスタンスは自動的に再起動されます。[root@iZxxx ~]# vim runcommand_reboot_instances.py [root@iZxxx ~]# ls runcommand_reboot_instances.py [root@iZxxx ~]# python runcommand_reboot_instances.py /usr/lib/python2.7/site-packages/aliyunsdkcore/auth/algorithm/sha_hmac256.py:20: CryptographyDeprecationWarning: Python 2 is now deprecated in cryptography, and will be removed in the next release. from cryptography.hazmat.backends import default_backend 09-18 14:33 root [INFO]: run command,invoke-id:t-hz0xxxxx 09-18 14:34 root [INFO]: instance i-bp185fcs**** command execute finished,status: Finished,output:helloworld 09-18 14:34 root [INFO]: instance i-bp14wwh**** command execute finished,status: Finished,output:helloworld 09-18 14:34 root [INFO]: instance i-bp13jbr**** command execute finished,status: Finished,output:helloworld 09-18 14:34 root [WARNING]: reboot instance Now 09-18 14:39 root [WARNING]: reboot instance Finished 09-18 14:39 root [INFO]: instance i-bp185fcs**** status: Running 09-18 14:39 root [INFO]: instance i-bp14wwh**** status: Running 09-18 14:39 root [INFO]: instance i-bp13jbr**** status: Running
-
OOS を使用したインスタンスのバッチ再起動
CloudOps Orchestration Service (OOS) は、テンプレートを通じて O&M タスクを自動化します。テンプレートにアクションを定義して実行することで、コマンドの実行とインスタンスのバッチ再起動が可能です。
-
テンプレート設定ページに移動します。
-
OOS コンソールにログインします。
-
を選択します。
-
テンプレートの作成 をクリックします。
-
-
テンプレートを設定します。
-
テンプレートの作成 ページで、デフォルト設定のままにして 次へ をクリックします。
-
[YAML] タブをクリックし、次のコードを入力します。
クリックしてサンプルコードを表示
-
テンプレートの作成 をクリックします。
-
表示されたダイアログボックスで、テンプレート名
runcommand_reboot_instancesを入力し、OK をクリックします。
-
-
テンプレートを実行します。
-
先ほど作成したテンプレートを見つけ、[操作] 列の エグゼキューションの作成 をクリックします。
-
実行を設定します。
プロンプトに従って設定を完了します。パラメーター設定 ページで、複数のインスタンスを選択し、他の設定はデフォルトのままにします。この例では、次のパラメーター設定を使用します。
-
リージョン: [中国 (杭州)] を選択します
-
対象インスタンス: [インスタンスを手動で選択] を選択し、[インスタンスの選択] をクリックしてコマンドを実行する ECS インスタンスを追加します
-
コマンドタイプ: [RunShellScript] を選択します
-
コマンド内容:
echo helloと入力します。
-
-
OK ページで、作成 をクリックします。
テンプレートは自動的に実行されます。基本情報 ページで、実行ステータス が 成功 に変わるまでお待ちください。
-
-
実行プロセスとタスクノードの詳細を確認します。
-
[実行ステップと結果] で [実行フローチャートを表示] をクリックすると実行フローチャートが表示され、タスクが [ECS インスタンスの取得]、[Cloud Assistant コマンドの実行]、[インスタンスの再起動] を順に通過し、すべてが正常に実行されたことがわかります。
-
Cloud Assistant コマンドの実行ステップをクリックします。ループタスクリストのタブで、各タスクノードの実行詳細を確認できます。スケジュールされたすべての操作が正常に完了しました。
-