SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SQL Server on Azure Arc 対応サーバーを Azure Policy で導入する

leave a comment

SQL Server 2022 では、セットアップ時に SQL Server on Azure Arc 対応サーバーをインストールすることができるようになり、セットアップで Azure Arc ならびに SQL Server 向けの拡張機能をインストールした状態でオンボードすることが可能となりました。

SQL Server 2022 より前のバージョンの SQL Server についても Azure Arc に接続がされていれば、Azure Policy 経由で SQL Server on Azure Arc 対応サーバーを導入することができ、導入の自動化につなげることができますので、本投稿では Azure Policy を使用した Windows サーバーへの SQL Server on Azure Arc 対応サーバーの導入を実施してみたいと思います。

作業内容としては、Azure Policy を使用した大規模な接続 になります。

Azure Policy を使用した SQL Server on Azure Arc 対応サーバーの導入

Azure Policy には、組み込みのポリシーとして「SQL Server 拡張機能がインストールされるように SQL Server を実行している Arc 対応マシンを構成する。」というポリシーが提供されています。(ArcMachineWithSQL_InstallArcEnabledExtension.json)

image

このポリシーを設定する際に「修復タスクを作成する」を有効にしておけば、SQL Server がインストールされている環境で、SQL Server on Azure Arc 対応サーバーが導入されていない (厳密には WindowsAgent.SqlServer の拡張機能がインストールされていない) 環境については、自動的に SQL Server on Azure Arc 対応サーバーの導入が行われ、Azure にオンボードされます。

Azure Arc 対応サーバーは Azure に接続する際には、マネージド ID が自動的に付与されますが、Azure Policy で設定を行った際には、自動的に Arc リソースが登録されているリソースグループにマネージド ID の「Azure Connected SQL Server オンボード」の付与が行われていましたので、オンボードするための必要な IAM の設定もポリシーにより行われています。
image

上記の設定であれば、ポリシーの「割り当て ID」で AAD 上にマネージド ID が作成されており、そのマネージド ID が SQL Server on Aure Arc 対応サーバーをオンボードするために必要となる権限の設定を実施している感じなのでしょうかね。

対象にポリシーの割り当てが行われると、ポリシーに準拠していない場合は、修復タスクとして自動的に拡張機能のインストールが行われ、SQL Server としてオンボードされます。

冒頭で紹介した Azure Policy を使用した大規模な接続 では、次の記載がありますので、ポリシーを割り当ててから Azure のリソースとして認識するまでには、待機時間が発生するようです。

私の環境では、ポリシー割り当てから 10 分程度で認識していました。

image

 

ポリシーの適用状況の確認

本ブログでも Azure Arc 対応サーバー (Windows) のゲスト構成機能のポリシー適用状況を確認するためのログ 等で、Azure Arc へのポリシーの適用状況の確認について触れてきました。

ポリシーの適用状況については、

  • Azure Portal の「ポリシー」のブレード
  • Get-AzPolicyState
  • Azure Portal の「Azure Arc 対応サーバー」のブレードの「ポリシー」または「マシン構成」

というような方法で確認することができ、今回使用している SQL Server on Azure Arc 対応サーバーの導入のポリシーについても、これらの方法で状況を確認することができます。

これらの方法での確認は Azure を起点とした確認となりますが、設定状況を Arc で接続しているサーバー側で確認したいということもあるのではないでしょうか。

今回使用しているポリシーについては、マシン構成 (ゲスト構成) は使用されていないため、Understand the machine configuration feature of Azure Policy で解説されている方法をそのまま使用することはできないのですが、この情報の中でもいくつかのヒントがあります。

ゲスト構成が使用されている場合は「C:\ProgramData\GuestConfig\Configuration」にゲスト構成で使用されるモジュールが配置されているかで、どこまで処理が進んでいるかを確認することができます。

SQL Server on Azure Arc 対応サーバーについては、Azure Arc の拡張機能として実装されていますので、モジュールについては「C:\Packages\Plugins」に配置がされ、今回の拡張機能については「Microsoft.AzureData.WindowsAgent.SqlServer」としてインストールされますので、この名前のディレクトリが存在しているかどうかで、拡張機能のインストールが行われたかを確認することができます。

拡張機能のインストールのログについては、「C:\ProgramData\GuestConfig」の次のファイルから確認することができます。

  • ext_mgr_logs\gc_ext.log
  • ext_mgr_logs\gc_ext_telemetry.txt
  • extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer

これらのログを確認すると、「Microsoft.AzureData.WindowsAgent.SqlServer」というログが出力されていますので、このログを確認することで、拡張機能の導入状況を確認する鵜ことができます。

 

Azure Policy を使用すると、SQL Server on Azure Arc 対応サーバーへの登録の自動化が行えそうですね。Azure 特典が使用できる環境であれば、Azure Policy ゲスト構成は特典の中で使用することができます。

それ以外の環境では Azure Policy ゲスト構成はサーバー単位でコストが発生します。Policy を使用して導入を行う場合のコスト面まで細かく確認できていないのですが、Azure Arc に対して「Server Guest Configuration Policy/Server」のコストが発生しているようであれば、展開のためだけに Azure Policy を使用するのはもったいないですので、効果的な活用を考える必要が出てきそうです。

Share

Written by Masayuki.Ozawa

8月 17th, 2022 at 11:12 am

Leave a Reply