みなさんこんにちは。 以前にこちらのブログ記事でAzure Arcについてご紹介いたしました。
まずはAzure Arcにリソースを接続(オンボード)してみようということで、接続方法についてご紹介したいと思います。 今回は「サーバー」(Windows)をAzure Arcに接続してみます。
サーバーをAzure Arcに接続する前に...
サーバーをAzure Arcに接続する前にいくつかポイントを押さえておきましょう。
Connected Machine エージェント
サーバーをAzure Arcに接続するにあたっては「Connected Machine エージェント」が必要です。 このエージェントをAzure Arcに接続するサーバー上にインストールします。
OSにエージェントをインストールして利用しますので、サーバーの電源がオフになっている(OSが稼働していない)場合やAzureに接続できない場合にはAzure Arcを介した管理をすることができません。 サーバーが長期間オフラインになるような場合にはご留意ください。
また、エージェントをインストールするには各種要件があります。 サポートされるOSや必要なソフトウェア・パッケージなど、事前にこちらでご確認ください。
通信経路
ここでAzureへの通信経路について確認しておきましょう。 サーバーにインストールされたConnected Machine エージェントがTCP 443ポートを利用して通信する点については以前のブログ記事で触れました。
サーバーをAzure Arcへ接続する場合、インターネットを経由してもよいですし、VPNやAzure ExpressRouteを経由しても構いません。(VPNやAzure ExpressRouteは必須ではなく、これらがなくてもAzure Arcに接続することが可能です。)
Azure Arcにはパブリックエンドポイントとプライベートエンドポイントが存在します。 オンプレミス環境上のサーバーを例にエンドポイントと通信経路を簡単にまとめた図が以下です。 こちらの図にもありますように、パブリックエンドポイントを利用する場合にプロキシを経由することも可能です。
詳細なネットワーク要件についてはこちらをご参照ください。
Azure Arcへの接続(オンボード)方法
サーバーにConnected Machine エージェントをインストールしAzure Arcへ接続する方法は複数あります。 その一例として以下のような方法が挙げられます。
・スクリプトを利用する
・Windows Admin Centerを利用する
・PowerShellを利用する
・Ansible Playbookを利用する
・Azure Update Managementを利用する
接続対象のOS種別や台数、対話型で接続するかどうかといった点を考慮し、どの手法を採用するか決定します。 接続方法についてはこちらに表形式でまとめられていますのでご参照ください。
なお、本ブログ記事ではスクリプトを利用してAzure Arcに接続する方法をご紹介します。
検証環境
今回はサーバーとしてWindows Server 2022を用意し、Azure Arcに接続してみたいと思います。
Windows Server 2022はインターネットにアクセス可能な状態にしてあります。 今回はプロキシ、VPNやAzure ExpressRouteがない環境ですのでサーバーからAzure Arcのパブリックエンドポイントに接続します。
また、Connected Machine エージェントをインストールする上でのソフトウェア要件がありますので事前に確認しておきましょう。 Windows Server 2022の場合は.NET FrameworkならびにPowerShellに関する要件があります。 今回利用する環境では以下のようになっています。(.NET Frameworkのバージョン確認についてはこちら、PowerShellのバージョン確認についてはこちらをご参照ください。)
さらに、Azure Arcにサーバーを接続するにはAzureのリソースプロバイダーとしてMicrosoft.HybridCompute、Microsoft.GuestConfiguration、Microsoft.HybridConnectivityが必要です。 (未登録の場合はこちらの手順に沿ってリソースプロバイダーを登録します。)
スクリプトを使ってサーバー(Windows)をAzure Arcに接続
サーバー(Windows Server 2022)をMicrosoft Learnの記載に従って接続してみます。 サーバー上で実行するためのスクリプトをAzure Portalから入手できますが、追加対象のサーバーが単一か複数かでスクリプトの内容が変わります。 今回は「単一サーバーの追加」の手法を採用します。
Azure PortalでAzure Arcの「インフラストラクチャ」配下の「サーバー」を開いて「+追加」をクリックします。
「単一サーバーの追加」の「スクリプトの作成」をクリックします。
「次へ」をクリックします。
リソースグループや地域(リージョン)、オペレーティング・システムを選択します。 今回はリソースグループとして「arc-rg」を使用します。 地域は東日本を選択しました。(ここにサーバーのメタデータが格納されます。) オペレーティング・システムは「Windows」か「Linux」のいずれかを環境に合わせて選択します。 ここでは「Windows」を選択します。
「接続方法」ではConnected Machine エージェントからの通信経路を指定し、「次へ」をクリックします。 接続方法の各選択肢については前述の「通信経路」でご説明した通りです。 今回は「パブリックエンドポイント」を選択しました。
タグの設定画面が表示されます。 「物理的な場所タグ」によりサーバーの所在地をタグとして設定することが可能です。 こちらにはプリセットでDatacenter / City / SiteOrDistrict / CountryOrRegion という名称のタグ名が入力されています。 必要に応じて値を入力し「次へ」をクリックします。
スクリプトがサブスクリプションIDやテナントIDなどの値を含めた形で表示されます。(CORRELATION_IDという環境変数がありますが、こちらは自動生成されたIDでありユーザーが特に意識することはありません。) 本スクリプトの内容としてはコメント文にあります通り、インストールパッケージをダウンロードしてエージェントをインストールしたのち、Azure Arcに接続するというものです。 こちらをAzure Arcに接続するサーバーにダウンロードまたはコピーします。
なお、下にスクロールするとスクリプトの用法や内容を確認することができます。
今回はサーバーの「ダウンロード」フォルダにスクリプトを保存しました。(こちらに記載の通り、Windowsの場合はローカルのAdministratorsグループのメンバーアカウントでスクリプト(Connected Machine エージェントのインストールや構成)を実行する必要があります。 ここではAdministratorとしてWindows Server 2022にログインしています。)
PowerShellを管理者として実行し、スクリプトを実行します。
しばらく待機すると認証のためWebブラウザが起動されますのでサインインします。(Azureアカウントに必要なロールについてはこちらをご参照ください。)
認証が完了したらWebブラウザを閉じて構いません。
スクリプトの実行が続行されますので、完了するまで待機します。
「プログラムと機能」でConnected Machine エージェントがインストールされていることが確認できます。
Azure Portalには接続したサーバーが以下のように表示されています。 ホスト名がそのままリソースの名前になっていることが分かります。 (ホスト名として利用できない文字列がある点にご留意ください。詳細についてはこちらをご参照ください。) また、状態が「接続済み」になっています。
複数のサーバーを非対話型で接続したいときは...
複数のサーバーをスクリプトによってAzure Arcに接続させたい場合、各サーバー上で都度Azureにサインインするのは面倒です。 このようなケースではAzure Portalの「複数サーバーの追加」からスクリプトを作成します。
ここでは「複数サーバーの追加」で作成したスクリプトによってAzure Arcに接続する様子をご紹介します。 Azure Arcに接続するのは先ほどと同様の環境(Windows Server 2022)です。
「次へ」をクリックします。
下にスクロールすると「認証」で「サービスプリンシパル」を指定することができます。 ここでは新しくサービスプリンシパルを作成するために「Azure Arc関連ロールのサービスプリンシパルを作成または管理する」をクリックします。
「サービスプリンシパルの作成」をクリックします。
名前、スコープの割り当てレベルなどの設定を入力します。 ここではクライアントシークレットの有効期限を1日としています。 また、ロールの割り当ては「Azureに接続されたマシンのオンボード」(Azure Connected Machine Onboarding)を指定します。
クライアントシークレットが表示されますので控えておきます。 ページを遷移するとクライアントシークレットの再確認ができなくなるためご留意ください。
これでAzure Arc設定画面でサービスプリンシパルを指定できるようになりました。
Azure Arcの設定画面に戻り、リソースグループや地域(リージョン)などを入力して「次へ」をクリックします。
タグ設定画面は「単一サーバーの追加」と同じです。 「次へ」をクリックします。
ここでデプロイ方法を選択する必要があります。 今回はAzure Arcに接続するサーバー上でスクリプトを実行しますので「基本スクリプト」を選択します。
表示されているスクリプトをAzure Arcに接続するサーバーにダウンロードまたはコピーします。
なお、スクリプトに記載されているコメント文の通り、先ほど控えておいたサービスプリンシパルのクライアントシークレットを追加する必要があります。
編集したスクリプトをサーバー側で実行した様子が以下です。 特にAzureへのサインインを求められずにAzure Arcへの接続が完了しています。
サービスプリンシパルを利用してAzure Arcに接続する方法についてはMicrosoft Learnにも記載がございますので併せてご参照ください。
まとめ
Azure Arcでは各種インフラストラクチャを接続した上で管理することができるサービスですが、今回はWindows OSを「接続するまで」の手順をご紹介しました。 接続後の管理についてはまた改めてご紹介できればと思います。
また、本ブログ記事ではWindows OSをスクリプトによってAzure Arcに接続する方法をご紹介しましたが、前述しましたように接続方法は様々ございます。 接続対象のOS種別や台数、対話型で接続するかどうかといった点から接続方法をご考慮の上、接続方法を選んで頂ければと思います。
なお、LinuxサーバーをAzure Arcに接続する方法については以下のブログ記事でご紹介しておりますので併せてご参照ください。
Azure Arcに接続してみよう - サーバー(Linux)編
SB C&SはAzureを取り扱われているパートナー企業様へ様々なご支援のメニューを用意しております。 メニューの詳細やAzureに関するご相談等につきましては以下の「Azure相談センター」をご確認ください。
Azure相談センター
https://licensecounter.jp/azure/
※ 本ブログは弊社にて把握、確認された内容を基に作成したものであり、製品の動作や仕様について担保・保証するものではありません。サービスや製品の動作、仕様等に関しては、予告なく変更される場合があります。
Azureに関するブログ記事一覧はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第1技術部 4課
中原 佳澄