こんにちは。デジタルテクノロジーのS.Wです。
前回に引き続き OSM Automation & Control を使用した運用自動化についてです。
宣言どおり「Azure 上のWindows Server 上でPowerShell を実行する」ことを目指します。

Automation からWindows Server 上で PowerShell を実行する手段

まず、Automation から Windows Server 上で Power Shell を実行する手段は以下の2パターンあります。
WinRM を使用してリモートから実行する
・対象マシンを Hybrid Runbook Worker として構築する

Automation はインターネット経由で対象のマシンへアクセスすることになるので、Automation から直接 WinRM を実行することはオススメできません。
そこで、今回は対象マシンを Hybrid Runbook Worker として構築し、マシン上で Power Shell コマンドを実行してみます。

 

Hybrid Runbook Workerとは

Azure Automation の Runbook は Azure クラウド上で実行されるため、他クラウドやオンプレミス環境のリソースにはアクセスできません。
Azure Automation の Hybrid Runbook Worker 機能を使用すると、Hybrid Runbook Worker を実行しているサーバから、環境内のリソースに対して Runbook を実行できるようになります。
Hybrid Runbook Worker の詳細については、以下のマイクロソフトの資料に記載されています。
https://docs.microsoft.com/ja-jp/azure/automation/automation-hybrid-runbook-worker

 

Hybrid Runbook Worker の構築

Hybrid Runbook Worker の構築方法は
・PowerShell Gallery から構築スクリプトを入手して、自動デプロイする
・手動でデプロイする
の2通り存在します。

今回は PowerShell Gallery から構築スクリプトを入手して自動デプロイを行います。
PowerShell Gallery から構築スクリプトを入手するためには PowerShellGet の最新版が必要になります。
Hybrid Runbook Worker 用の環境が条件を満たしているか確認をしてください。
PowerShell Gallery を使用可能になったら、 PowerShell を管理者権限で起動して構築スクリプトを入手します。

今回はDドライブの直下にダウンロードします。

正常にダウンロードできていることを確認します。

あとはダウンロードしたスクリプトに適切に引数を渡して実行すれば、当該マシンは Hybrid Runbook Worker として構築されます。
以下の引数をそれぞれスクリプトに渡してあげる必要があります。

引数 必須 備考
AutomationAccountName Automation のアカウント名。前回作成したアカウントを使用します。
ResourceGroupName Automation アカウントと関連付いているリソースグループ名。
HybridGroupName Hybrid Runbook Worker グループの名前。
SubscriptionID Automation アカウントが存在するサブスクリプションのID。
WorkspaceName × OMS ワークスペースの名前。

OMS ワークスペースがない場合は、スクリプトがこれを作成して構成します。

Azure ダッシュボードからHybrid Worker グループが作成され、Worker が登録されていることを確認しましょう。

テスト用Runbookの実行

Hybrid Worker の構築が終わりましたので、早速 Worker 上で PowerShell を実行するために新規に Runbook を作成します。
Runbook の中身は hostname コマンドを実行するだけですが、「実行設定」で作成した Hybrid Worker を指定する点に注意してください。

 

ちなみに、実行場所を Azure とした場合はこのようにエラーとなります。

 

以上で「Azure 上のWindows Server 上でPowerShell を実行する」環境が構築できました。
今回は Azure 上の Windows Server をHybrid Worker として構築しましが、もちろんオンプレミスのサーバでも同じことができます。
これで運用自動化を進める環境の準備がある程度整いましたので、次回以降はより具体的な運用自動化を Automation を使用して進めて行きたいと思います。