LoginSignup
0
0

More than 1 year has passed since last update.

[Azure Automation] Proxy環境でのHybrid Runbook Worker のセットアップ

Last updated at Posted at 2022-08-17

はじめに

  • 「Azure Automation + 拡張機能ベース(V2)のHybrid Runbook Worker(以降、HRWと呼ぶ)」の構成において、その間にProxy環境を使用する場合のセットアップ手順は、 Azureドキュメント に記述がありますが、ドキュメント通りでは正しくセットアップできませんでした。
    試行錯誤し、正しく動作できた手順を記載します。
  • 前提条件
    • Automationアカウント、ハイブリッド Worker グループ は作成済
    • HRW
      • Azure VM + Windows Server OS で構築済
      • 拡張機能ベース(V2)を使用
    • Firewall等で必要な通信は許可済

手順

  1. (再セットアップの場合)

    1. Azure Portalから、[Automationアカウント]-[{HRWを使用するAutomationアカウント名}]-[ハイブリッド Worker グループ]-[{HRWグループ名}]-[{HRWのVM名}]を選択し、[削除]
       ※一覧から"HRWのVM名"が無くなることを確認する
    2. HRWへリモートデスクトップ接続後、regeditを使用し、レジストリ [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HybridRunbookWorkerV2]の削除
      ※実施しなくても動作する場合がある。
  2. PowerShellから下記コマンドを実行

    # Azureへ接続
    Connect-AzAccount
    
    # 変数
    #- サブスクリプションID
    $subscription="xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx"
    #- HRW VMのリソースグループ
    $rg = "aaaaa"
    #- HRW VMの場所 例:Japan East
    $location = "bbbbb"
    #- HRW VMのVM名
    $hybridVm = "ccccc"
    #- HRWを使用するAutomationアカウント名
    $ac = "ddddd"
    #- Proxyの情報 IPアドレス:Port 例:192.168.1.1:8080
    $proxy = "eee.eee.eee.eee:fff"
    
    # 事前処理
    #- Automation アカウントの詳細を取得するためのAPIエンドポイント
    $url="https://westcentralus.management.azure.com/subscriptions/${subscription}/resourceGroups/${rg}/providers/Microsoft.Automation/automationAccounts/${ac}?api-version-2021-06-22"
    #- Connect-AzAccountしたユーザのトークンの取得
    $token = (Get-AzAccessToken).Token
    #- Automation アカウントの詳細を取得
    $data = (Invoke-RestMethod -Uri $url -Method GET -Headers @[Authorization="Bearer $token"])
    #- Automation アカウントの詳細からproperties.automationHybridServiceUrlの取得
    # 補足) ドキュメントでは「"AutomationAccountURL"  = "<registrationurl>/<subscription-id>"」と記述しているが、正しくは「"AutomationAccountURL"  = "properties.automationHybridServiceUrl"」
    $automationHybridServiceUrl = $data.properties.automationHybridServiceUrl
    
    #- 拡張機能の設定情報
    # 補足) Proxy認証が無い場合は、"UserName"及び$protectedsettingsは削除する
    $settings = @{
        "AutomationAccountURL"  = $automationHybridServiceUrl;    
        "ProxySettings" = @{
            "ProxyServer" = $proxy;
            "UserName"="test";
        }
    };
    $protectedsettings = @{
        "ProxyPassword" = "password";
    };
    
    # 拡張機能の設定
    # 補足) Proxy認証が無い場合は、$protectedsettingsは削除する
    Set-AzVMExtension -ResourceGroupName $rs -Location $location -VMName $hybridVm -Name "HybridWorkerExtension" -Publisher "Microsoft.Azure.Automation.HybridWorker" -ExtensionType HybridWorkerForWindows -TypeHandlerVersion 0.1 -Settings $settings -ProtectedSettings $protectedSettings
    

    本コマンドを実行すると"Specified machineld is not associated with automation account."エラーとなり失敗するが問題無し。
    この時、HRWのレジストリ[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\HybridWorker\Parameters]-[Http Connection Proxy Uri]へProxy情報($proxy)が記録

  3. Azure Portalから、[Virtual Machines]-[{HRWのVM名}] → [設定]-[拡張機能とアプリケーション] → [HybridWorkerExtension] → [アンインストール] の順にクリック
     ※一覧から"HybridWorkerExtension"が無くなることを確認する
     ※本手順を実施しないと、No.4にて追加候補として一覧に表示しない

  4. Azure Portalから、[Automationアカウント]-[{HRWを使用するAutomationアカウント名}]-[ハイブリッド Worker グループ]-[{HRWグループ名}]より、"HRWのVM名"を追加
     ※数秒後に一覧へ"HRWのVM名"が表示することを確認する。
     ※数分~数十分経過しても処理が完了しない場合は、通信タイムアウト(例:Proxy情報が誤っている)の可能性がある。その場合は、原因を特定/修正後に再度No.1から実行する。

設定が完了すると、下記の通りHRWのレジストリ内容が更新

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\HybridWorker\Parameters]-[Http Connection Proxy Uri]からProxy情報が削除
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HybridRunbookWorkerV2]が作成

AutomationとHRW間で疎通が取れている場合は、No.4の画面にて"最終表示時刻"が表示する。但し、しばらく時間を要することがあるため、実際にジョブを実行し確認しても良い。

補足

No.1 → 4 → 2 の順番でも成功する場合がある

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0