CustomScriptExtensionでAzureからオンプレVMでのスクリプト実行!
この記事の内容
- Azure ArcでオンプレミスのWindowsサーバーをAzureに接続している環境を前提とします
- Custom Script Extension for Windows (Azure Arc) を使って、オンプレミスVMに対してAzure上からスクリプトを実行する手順を紹介します
- スクリプトファイルはAzure Storage Accountに保存しておき、拡張機能から参照する仕組みです
- スクリプトの実行結果はAzureポータル上で確認できます
- 世界中どこにあるArc接続済みVMに対しても同様の管理が可能です
前提環境
今回の手順では、以下の環境を使用します。
- オンプレミスのHyper-V上で動作するWindowsサーバー(DC01:ドメインコントローラー)
- Azure Arcに接続済み(Azureポータル上の「Azure Arcリソース」→「Arcマシン」として確認できる状態)
- 実行したいPowerShellスクリプト(
.ps1ファイル)をAzure Storage Accountのコンテナに事前にアップロード済み
Custom Script Extension for Windows (Azure Arc) とは
Azure Arcに接続されたオンプレミスVMに対して、Azure上からスクリプトを実行できる拡張機能です。
流れとしては以下のようになります。
- Azureポータル(クラウド側)でスクリプト実行の指示を出す
- その指令がオンプレミスのサーバーに伝わる
- オンプレミスのサーバー上でスクリプトが実行される
- 実行結果がAzure Arcに報告される
- Azureポータル上で結果を確認できる
この仕組みにより、世界中どこに設置されたVMであっても、Azureに接続さえしておけば一元的に管理・操作できます。
手順
1. Azure ArcマシンのDC01を開く
Azureポータルで 「Azure Arc」→「Arcマシン」 と進み、対象のマシン(DC01)を選択します。DC01がArcに接続されていることを確認してください。
2. 拡張機能を追加する
DC01のリソース画面で 「拡張機能」 を選択し、「追加」 をクリックします。
拡張機能の一覧から以下を選択します。
選択したら 「次へ」 を押します。
3. スクリプトファイルを指定する
スクリプトの設定画面が表示されます。この拡張機能では、スクリプトをその場で直接記述するのではなく、事前に用意したスクリプトファイルを指定する方式を取ります。
「参照」 ボタンを押し、以下の順に選択します。
- ストレージアカウントを選択
- コンテナを選択
- コンテナ内に保存済みのPowerShellスクリプトファイル(例:
samplescript1.ps1)を選択
引数が不要な場合はそのまま 「次へ」 → 「作成」 をクリックします。
4. デプロイの完了を待つ
「デプロイを送信しました」と表示され、拡張機能のインストールとスクリプト実行がオンプレミスのサーバーに向けて開始されます。デプロイが完了するまでしばらく待ちます。
5. 実行結果を確認する
デプロイ完了後、「リソースに移動」 をクリックしてDC01のリソース画面に戻ります。
「拡張機能」 を開くと、一覧に Custom Script Extension が追加されており、状態が 「成功」 となっています。
この拡張機能をクリックすると、「状態メッセージ」 のセクションに実行結果(StandardOutput)が表示されます。今回のサンプルスクリプトではホスト名とIPConfigを取得するコマンドを記述していたため、以下のように結果が確認できました。
- コンピューター名:
DC01 - IPアドレス:オンプレミス側のIPアドレス
これにより、確かにオンプレミスのサーバー上でスクリプトが実行されたことが確認できます。
まとめ
Azure Arcに接続済みのオンプレミスVMに対して、Custom Script Extension for Windows (Azure Arc) を使うと、Azureポータルから簡単にスクリプトを実行できます。手順としては「スクリプトファイルをStorage Accountに置く → 拡張機能から指定して実行する」だけであり、思ったよりもシンプルに操作できます。
Azure ArcでオンプレミスのVMをAzureに接続しておくことで、このような拡張機能の仕組みを活用したリモート管理が可能になります。拠点が分散している環境や、オンプレミスとクラウドを混在させているハイブリッド環境において、非常に有効な管理手法の一つです。