既存のエージェント ベースのハイブリッド worker を拡張機能ベースのハイブリッド worker に移行する
重要
Azure Automation エージェント ベースのユーザー Hybrid Runbook Worker (Windows と Linux) は 2024 年 8 月 31 日に廃止され、サポートされなくなりました。 既存のエージェント ベースのユーザー Hybrid Runbook Worker から拡張機能ベースの Hybrid Worker に移行する方法については、この記事のガイドラインに従ってください。
この記事では、拡張機能ベースのユーザー Hybrid Runbook Worker の利点と、既存のエージェント ベースのユーザー Hybrid Runbook Worker を拡張機能ベースのハイブリット worker に移行する方法について説明します。
Azure Automation でサポートしている Hybrid Runbook Worker インストール プラットフォームは 2 つあります。
- エージェント ベースの Hybrid Runbook Worker (V1) - エージェントベースの Hybrid Runbook worker は、Log Analytics エージェントに依存します。
- 拡張機能ベースの Hybrid Runbook Worker (V2) - 拡張機能ベースの Hybrid Runbook Worker は、仮想マシン (VM) 拡張機能フレームワークを介して Hybrid Runbook Worker ロールのネイティブ統合を提供します。
Hybrid Runbook Worker で Runbook を実行するプロセスは、どちらも変わりません。
エージェント ベースの worker に対する拡張機能ベースのユーザー Hybrid Runbook Worker の利点
拡張機能ベースのアプローチの目的は、ハイブリッド worker のインストールと管理を簡素化し、エージェント ベースのバージョンを使用する複雑さをなくすことです。 主な利点を次に示します。
シームレスなオンボード – Hybrid Runbook Worker をオンボードするためのエージェントベースのアプローチは、Log Analytics エージェントに依存します。これは、マルチステップで時間がかかり、エラーが発生しやすいプロセスです。 拡張機能ベースのアプローチでは、セキュリティが強化され、Log Analytics エージェントに依存しなくなります。
管理のしやすさ - Azure Resource Manager (ARM) ID と Hybrid Runbook Worker のネイティブ統合をサポートしています。ポリシーとテンプレートにより大規模なガバナンスを柔軟に実行できます。
Microsoft Entra ID ベースの認証 – Microsoft Entra ID によって提供される VM システム割り当てマネージド ID を使用します。 これにより、ID およびリソースの資格情報の制御と管理を一元化できます。
統合エクスペリエンス – Azure と Azure 以外の Arc 対応マシンを管理するための同じエクスペリエンスが提供されます。
複数のオンボード チャネル – Azure portal、PowerShell コマンドレット、Bicep、ARM テンプレート、REST API、Azure CLI を使用して、拡張機能ベースのワーカーをオンボードおよび管理することができます。
既定の自動アップグレード – 既定ではマイナー バージョンの自動アップグレードが提供されるため、最新バージョンでの更新を維持する管理性が大幅に低下します。 自動アップグレードを有効にして、手動のオーバーヘッドなしでセキュリティや機能更新プログラムを利用することをお勧めします。 いつでも自動アップグレードをオプトアウトすることもできます。 メジャー バージョンのアップグレードは現在サポートされていないため、手動で管理する必要があります。
Note
拡張機能ベースの Hybrid Runbook Worker は、ユーザー Hybrid Runbook Worker だけをサポートしており、Update Management 機能に必要なシステム Hybrid Runbook Worker は含まれていません。
前提条件
マシンの最小要件
- 2 コア
- 4 GB の RAM
- Azure 以外のマシンに Azure Connected Machine エージェントをインストールしておく必要があります。
AzureConnectedMachineAgent
をインストールするには、Arc 対応サーバーの場合は Azure portal からハイブリッド マシンを Azure に接続する方法の記事、Arc 対応 VMware vSphere VM の場合は VMware 仮想マシン Azure Arc の管理によるゲスト管理の有効化に関する記事を参照してください。 - システム割り当てマネージド ID を Azure 仮想マシン、Arc 対応サーバー、または Arc 対応 VMware vSphere VM で有効にする必要があります。 システム割り当てマネージド ID が有効になっていない場合は、Azure portal を使用したインストール プロセスの一環として有効になります。
サポートされるオペレーティング システム
Windows (x64) | Linux (x64) |
---|---|
● Windows Server 2022 (Server Core を含む) ● Windows Server 2019 (Server Core を含む) ● Windows Server 2016、バージョン 1709 および 1803 (Server Core を除く) ● Windows Server 2012、2012 R2 (Server Core を除く) ● Windows 10 Enterprise (マルチセッションを含む) および Pro |
● Debian GNU/Linux 8,9, 10 および 11 ● Ubuntu 18.04 LTS、20.04 LTS および 22.04 LTS ● SUSE Linux Enterprise Server 15.2 および 15.3 ● Red Hat Enterprise Linux Server 7、8、9 ● SUSE Linux Enterprise Server (SLES) 15 ● Rocky Linux 9 ● Oracle Linux 7、8 ハイブリッド worker 拡張機能は、OS ベンダーのサポート タイムラインに従います。 |
その他の要件
Windows (x64) | Linux (x64) |
---|---|
Windows PowerShell 5.1 (WMF 5.1 をダウンロードする)。 PowerShell Core はサポートされていません。 | Linux Hardening を有効にすることはできません。 |
.NET Framework 4.6.2 以降。 |
Linux のパッケージ要件
必須パッケージ | 説明 | 最小バージョン |
---|---|---|
Glibc | GNU C ライブラリ | 2.5-12 |
Openssl | OpenSSL ライブラリ | 1.0 (TLS 1.1 と TLS 1.2 がサポートされます) |
Curl | cURL Web クライアント | 7.15.5 |
Python-ctypes | Python 用の外部関数ライブラリ | Python 2.x または Python 3.x が必要 |
PAM | Pluggable Authentication Module (プラグ可能な認証モジュール) |
オプション パッケージ | 説明 | 最小バージョン |
---|---|---|
PowerShell Core | PowerShell Runbook を実行するには、PowerShell Core をインストールする必要があります。 方法については、Linux への PowerShell Core のインストールに関するページを参照してください。 | 6.0.0 |
ハイブリッド Worker の資格情報のアクセス許可
拡張機能ベースのハイブリッド worker でカスタム ハイブリッド worker の資格情報が使われている場合は、ジョブが中断されないように、次のフォルダーのアクセス許可がカスタム ユーザーに割り当てられていることを確認してください。
リソースの種類 | フォルダー権限 |
---|---|
Azure VM | C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (読み取りと実行) |
Arc 対応サーバー | C:\ProgramData\AzureConnectedMachineAgent\Tokens (読み取り) C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (読み取りと実行) |
Note
- システムで UAC/LUA が有効になっている場合は、アクセス許可をグループ メンバーシップ経由ではなく直接付与する必要があります。 詳細情報。
- Arc 対応サーバーの場合は、ARC エージェントが更新されるたびにアクセス許可が削除されるため、アクセス許可を再割り当てしてください。
- Hybrid Runbook Worker は、現在 Virtual Machine Scale Sets (VMSS) ではサポートされていません。
既存のエージェント ベースの Hybrid Worker を拡張機能ベースの Hybrid Worker に移行する
拡張機能ベースのハイブリッド worker のベネフィットを利用するには、既存のエージェント ベースのユーザー ハイブリッド worker をすべて拡張機能ベースの worker に移行する必要があります。 ハイブリッド worker マシンは、エージェント ベース (V1) と拡張機能ベース (V2) の両方のプラットフォームで共存できます。 拡張機能ベースのものをインストールしても、インストール済みのエージェント ベース worker とその管理には影響がありません。
既存のエージェント ベースのハイブリッド worker にハイブリッド worker 拡張機能をインストールするには、次の手順に従う前に、前提条件が満たされていることを確認してください。
[プロセス オートメーション] の下で、[ハイブリッド Worker グループ] を選択し、続いて既存のハイブリッド worker グループを選択して、[ハイブリッド Worker グループ] ページに移動します。
[ハイブリッド Worker グループ] の下で、[ハイブリッド Worker]>[+追加] を選択して、[ハイブリッド Worker としてマシンを追加する] ページに移動します。
既存のエージェント ベース (V1) ハイブリッド worker の横にあるチェックボックスをオンにします。 エージェントベースの Hybrid Worker が一覧に表示されていない場合は、Azure Arc Connected Machine エージェントがマシンにインストールされていることを確認します。
AzureConnectedMachineAgent
をインストールするには、Arc 対応サーバーの場合は Azure portal からハイブリッド マシンを Azure に接続する方法の記事、Arc 対応 VMware vSphere VM の場合は VMware 仮想マシン Azure Arc の管理によるゲスト管理の有効化に関する記事を参照してください。[追加] を選択して、マシンをグループに追加します。
[プラットフォーム] 列には、[エージェント ベース (V1)] と [拡張機能ベース (V2)] の両方に同じ Hybrid Worker が表示されます。 拡張機能ベースの Hybrid Worker のエクスペリエンスと使用に問題がなければ、エージェント ベースの Worker を削除できます。
複数のエージェント ベース ハイブリッド worker の大規模な移行の場合、Bicep、ARM テンプレート、PowerShell コマンドレット、REST API、Azure CLI などの他のチャネルを使用することもできます。
Bicep テンプレート、ARM テンプレート、REST API、Azure CLI、PowerShell を使用してハイブリッド worker 拡張機能を管理する
Bicep テンプレートを使用して、新しいハイブリッド worker グループを作成し、新しい Azure Windows VM を作成して、既存のハイブリッド worker グループに追加できます。 Bicep について詳しく学習する。
例として、以下に示す手順に従います:
- ハイブリッド worker グループを作成します。
- Azure VM または Arc 対応サーバーを作成します。 または、既存の Azure VM または Arc 対応サーバーを使用することもできます。
- Azure VM または Arc 対応サーバーを、上記で作成したハイブリッド worker グループに接続します。
- 新しい GUID を生成し、ハイブリッド worker の名前として渡します。
- VM でシステム割り当てマネージド ID を有効にします。
- VM にハイブリッド worker 拡張機能をインストールします。
- 拡張機能が VM に正常にインストールされているかどうかを確認するには、Azure portal の [VM] >[拡張機能] タブに移動し、VM にインストールされているハイブリッド worker 拡張機能の状態を確認します。
param automationAccount string
param automationAccountLocation string
param workerGroupName string
@description('Name of the virtual machine.')
param virtualMachineName string
@description('Username for the Virtual Machine.')
param adminUsername string
@description('Password for the Virtual Machine.')
@minLength(12)
@secure()
param adminPassword string
@description('Location for the VM.')
param vmLocation string = 'North Central US'
@description('Size of the virtual machine.')
param vmSize string = 'Standard_DS1_v2'
@description('The Windows version for the VM. This will pick a fully patched image of this given Windows version.')
@allowed([
'2008-R2-SP1'
'2012-Datacenter'
'2012-R2-Datacenter'
'2016-Nano-Server'
'2016-Datacenter-with-Containers'
'2016-Datacenter'
'2019-Datacenter'
'2019-Datacenter-Core'
'2019-Datacenter-Core-smalldisk'
'2019-Datacenter-Core-with-Containers'
'2019-Datacenter-Core-with-Containers-smalldisk'
'2019-Datacenter-smalldisk'
'2019-Datacenter-with-Containers'
'2019-Datacenter-with-Containers-smalldisk'
])
param osVersion string = '2019-Datacenter'
@description('DNS name for the public IP')
param dnsNameForPublicIP string
var nicName_var = 'myVMNict'
var addressPrefix = '10.0.0.0/16'
var subnetName = 'Subnet'
var subnetPrefix = '10.0.0.0/24'
var subnetRef = resourceId('Microsoft.Network/virtualNetworks/subnets', virtualNetworkName_var, subnetName)
var vmName_var = virtualMachineName
var virtualNetworkName_var = 'MyVNETt'
var publicIPAddressName_var = 'myPublicIPt'
var networkSecurityGroupName_var = 'default-NSGt'
var UniqueStringBasedOnTimeStamp = uniqueString(resourceGroup().id)
resource publicIPAddressName 'Microsoft.Network/publicIPAddresses@2020-08-01' = {
name: publicIPAddressName_var
location: vmLocation
properties: {
publicIPAllocationMethod: 'Dynamic'
dnsSettings: {
domainNameLabel: dnsNameForPublicIP
}
}
}
resource networkSecurityGroupName 'Microsoft.Network/networkSecurityGroups@2020-08-01' = {
name: networkSecurityGroupName_var
location: vmLocation
properties: {
securityRules: [
{
name: 'default-allow-3389'
properties: {
priority: 1000
access: 'Allow'
direction: 'Inbound'
destinationPortRange: '3389'
protocol: 'Tcp'
sourceAddressPrefix: '*'
sourcePortRange: '*'
destinationAddressPrefix: '*'
}
}
]
}
}
resource virtualNetworkName 'Microsoft.Network/virtualNetworks@2020-08-01' = {
name: virtualNetworkName_var
location: vmLocation
properties: {
addressSpace: {
addressPrefixes: [
addressPrefix
]
}
subnets: [
{
name: subnetName
properties: {
addressPrefix: subnetPrefix
networkSecurityGroup: {
id: networkSecurityGroupName.id
}
}
}
]
}
}
resource nicName 'Microsoft.Network/networkInterfaces@2020-08-01' = {
name: nicName_var
location: vmLocation
properties: {
ipConfigurations: [
{
name: 'ipconfig1'
properties: {
privateIPAllocationMethod: 'Dynamic'
publicIPAddress: {
id: publicIPAddressName.id
}
subnet: {
id: subnetRef
}
}
}
]
}
dependsOn: [
virtualNetworkName
]
}
resource vmName 'Microsoft.Compute/virtualMachines@2020-12-01' = {
name: vmName_var
location: vmLocation
identity: {
type: 'SystemAssigned'
}
properties: {
hardwareProfile: {
vmSize: vmSize
}
osProfile: {
computerName: vmName_var
adminUsername: adminUsername
adminPassword: adminPassword
}
storageProfile: {
imageReference: {
publisher: 'MicrosoftWindowsServer'
offer: 'WindowsServer'
sku: osVersion
version: 'latest'
}
osDisk: {
createOption: 'FromImage'
}
}
networkProfile: {
networkInterfaces: [
{
id: nicName.id
}
]
}
}
}
resource automationAccount_resource 'Microsoft.Automation/automationAccounts@2021-06-22' = {
name: automationAccount
location: automationAccountLocation
properties: {
sku: {
name: 'Basic'
}
}
}
resource automationAccount_workerGroupName 'Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups@2022-02-22' = {
parent: automationAccount_resource
name: workerGroupName
dependsOn: [
vmName
]
}
resource automationAccount_workerGroupName_testhw_UniqueStringBasedOnTimeStamp 'Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/hybridRunbookWorkers@2021-06-22' = {
parent: automationAccount_workerGroupName
name: guid('testhw', UniqueStringBasedOnTimeStamp)
properties: {
vmResourceId: resourceId('Microsoft.Compute/virtualMachines', virtualMachineName)
}
dependsOn: [
vmName
]
}
resource virtualMachineName_HybridWorkerExtension 'Microsoft.Compute/virtualMachines/extensions@2022-03-01' = {
name: '${virtualMachineName}/HybridWorkerExtension'
location: vmLocation
properties: {
publisher: 'Microsoft.Azure.Automation.HybridWorker'
type: 'HybridWorkerForWindows'
typeHandlerVersion: '1.1'
autoUpgradeMinorVersion: true
enableAutomaticUpgrade: true
settings: {
AutomationAccountURL: automationAccount_resource.properties.automationHybridServiceUrl
}
}
dependsOn: [
vmName
]
}
output output1 string = automationAccount_resource.properties.automationHybridServiceUrl
エージェントベースのハイブリッド worker を削除する
管理者モードで PowerShell セッションを開き、次のコマンドを実行します:
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\HybridRunbookWorker\<AutomationAccountID>\<HybridWorkerGroupName>" -Force -Verbose
[プロセス オートメーション] で、 [ハイブリッド Worker グループ] を選択し、次に、ハイブリッド Worker グループを選択して、 [ハイブリッド Worker グループ] ページに移動します。
[ハイブリッド Worker グループ] で、 [ハイブリッド Worker] を選択します。
ハイブリッド Worker グループから削除するマシンの横にあるチェックボックスをオンにします。
[削除] を選択して、エージェント ベースの Windows ハイブリッド worker を削除します。
Note
- Automation アカウントで Private Link を無効にした後、Hybrid Runbook worker が削除されるまでに最大 60 分かかることがあります。
- ハイブリッド worker を削除した後、コンピューター上のハイブリッド worker 認証証明書は 45 分間有効です。
次のステップ
- Hybrid Runbook Worker の詳細については、「Automation の Hybrid Runbook Worker の概要」を参照してください。
- 拡張機能ベースのハイブリット worker のデプロイの詳細は、「Automation における拡張機能ベースの Windows または Linux ユーザー Hybrid Runbook Worker のデプロイ」を参照してください。
- Azure VM 拡張機能については、「 Windows 用の Azure VM 拡張機能と機能」および「Linux 用の Azure VM 拡張機能と機能」を参照してください。