2024/07/01 追記
構成例について、Automation AccountでPE構成をとる形へと変更しております。
はじめに
最近よくRunbookでの開発を業務で使用するのですが、色々と分かってきたことがあるので、ここにまとめておきます。
目次
HybridRunbookWorkerとは
通常、Azure AutomationのRunbookはAzureクラウドプラットフォーム上で動作をするものですが、Hybrid Runbook Workerでは仮想マシンのOSでスクリプトを直接動かすことができます。
つまり、 仮想マシンのOSで起動するスクリプトを実行できる機能 です。
参考:MS Learn:Automation Hybrid Runbook Worker の概要
WorkerGroupの構成に注意
以下留意しておく必要があります。
- RunbookはWorker Groupを指定して起動できる
- Worker Group内に複数のメンバーがいる場合、最初に疎通のとれた(Pingを受信した)メンバーでジョブを実行する
- 一度の疎通で実行できるジョブは1つのWorkerごとに4つまで、それ以上の場合はジョブがエラー停止する。
※1つのジョブをすべてのWorkerで同時実行させたい場合は、パターン②のようにHybrid Runbook Worker GroupとWorkerを1対1の関係にしておく必要があるので、この点は注意しましょう。
拡張機能のインストール方法
Hybrid Runbook Worker Groupに追加することで、自動的にインストールされます。
オンプレミス環境については、先にConnected Machine エージェントをインストールしてAzure Arcで管理で器用にしておく必要があります。
以下、拡張機能の要件などがまとまったDocsとなります。
参考:MS Learn:拡張機能ベースの Windows または Linux ユーザー Hybrid Runbook Worker を Azure Automation にデプロイする
ネットワーク要件はシンプル
MSのドキュメントにはこんな感じの絵が載っています。
参考:MS Learn:Automation Hybrid Runbook Worker の概要
要点は以下まとめておきます。
- オンプレ-->Automation Account、Vnet-->Automation Accountでの通信は基本的に443で通信する。
- 基本的に、Automation Accountから見てインバウンド通信のみ発生。
- Hybrid Runbook WorkerがAutomation Accountにポーリング(Port:443)でジョブを取得する。
- Hybrid Runbook WorkerがHybrid Runbook Worker VM拡張機能と通信をして、ポーリングやスクリプトの起動をしてくれる。
- Private Endpoint構成が可能
構成例
オンプレミス環境と仮想ネットワーク環境、AutomationAccount間で通信を行う構成例です。
①仮想マシンからPrivate Endpointへ直接通信する。名前解決は同仮想ネットワーク内のため、内部DNSで可能。
②オンプレミス環境からの通信においても、同様にAzure Firewallを経由してAzure Automation Accountへ通信する。AzureArc対応サーバ側で以下参考のProxyの設定が必要。
参考:MS Learn:拡張機能ベースの Windows または Linux ユーザー Hybrid Runbook Worker を Azure Automation にデプロイする
※図ではVPN通信を想定した記載だが、ここはExpressGatewayでもなんでもOK
③FirewallのProxy設定を使用してAutomation AccountのPrivate Endpoint通信を転送します。
設定については、以下の記事を参考にしてください。
参考:MS Learn:Azure Firewall DNS プロキシの詳細
参考:プロキシサーバとしてAzure Firewallを使う
④Private EndpointからAutomation Accountへ通信。