Migrer les workers hybrides basés sur un agent existants vers les workers hybrides basés sur les extensions
Important
Le Runbook Worker hybride d’utilisateur basé sur l’agent Azure Automation (Windows et Linux) a été mis hors service le 31 août 2024 et n’est plus pris en charge. Suivez les instructions de cet article pour migrer d’un Runbook Workers hybrides d’utilisateur basé sur l’agent existant vers des Workers hybrides basés sur l’extension.
Cet article décrit les avantages du Runbook Worker hybride basé sur l’extension et de la migration des Runbook Workers hybrides basés sur l’agent vers des Workers hybrides basés sur l’extension.
Deux plateformes d’installation de Runbook Workers hybrides sont prises en charge par Azure Automation :
- Runbook Worker hybride basé sur agent (V1) : le runbook worker hybride basé sur agent dépend de l’agent Log Analytics.
- Runbook Worker hybride basé sur l’extension (V2) : le runbook worker hybride basé sur l’extension fournit une intégration native du rôle Runbook Worker hybride via l’infrastructure d’extension de machine virtuelle.
Le processus d’exécution de runbooks sur des Runbook Workers hybrides reste le même pour les deux.
Avantages des Runbook Workers hybrides basés sur l’extension sur les workers basés sur l’agent
L’objectif de l’approche basée sur une extension est de simplifier l’installation et la gestion du Worker hybride et de supprimer la complexité liée à l’utilisation de la version basée sur un agent. Voici quelques-uns des principaux avantages :
Intégration transparente : L’approche basée sur l’agent pour l’intégration d’un Runbook Worker hybride dépend de l’agent Log Analytics, qui est un processus multi-étapes, fastidieux et sujette aux erreurs. L’approche basée sur l’extension offre plus de sécurité et ne dépend plus de l’agent Log Analytics.
Facilité de gestion : Il offre une intégration native avec l’identité Azure Resource Manager (ARM) pour Runbook Worker hybride et offre la flexibilité de la gouvernance à grande échelle par le biais de stratégies et de modèles.
Authentification basée sur Microsoft Entra ID : Il utilise des identités managées affectées par le système de machine virtuelle fournies par Microsoft Entra ID. Cela permet de centraliser le contrôle et la gestion des identités et des informations d’identification des ressources.
Expérience unifiée : elle offre une expérience identique pour la gestion des machines Azure et hors Azure Arc.
Plusieurs canaux d’intégration : Vous pouvez choisir d’intégrer et de gérer des workers basés sur des extensions via le portail Azure, les applets de commande PowerShell, Bicep, les modèles ARM, l’API REST et Azure CLI.
Mise à niveau automatique par défaut : il offre une mise à niveau automatique des versions mineures par défaut, ce qui réduit considérablement la facilité de gestion de rester à jour sur la dernière version. Nous vous recommandons d’activer les mises à niveau automatiques pour tirer parti des mises à jour de sécurité ou de fonctionnalités sans surcharge manuelle. Vous pouvez aussi désactiver les mises à jour automatiques à tout moment. Les mises à niveau de version majeures ne sont actuellement pas prises en charge et doivent être gérées manuellement.
Remarque
Le Runbook Worker hybride basé sur l’extension prend uniquement en charge le type Runbook Worker hybride utilisateur et n’inclut pas le Runbook Worker hybride système requis pour la fonctionnalité Update Management.
Prérequis
Configuration minimale de la machine
- 2 cœurs
- 4 Go de RAM
- L’agent Azure Connected Machine doit être installé sur les machines non Azure. Pour installer l’agent
AzureConnectedMachineAgent
, consultez Connecter des machines hybrides à Azure à partir du portail Azure pour les serveurs avec Arc ou Gérer des machines virtuelles VMware avec Azure Arc pour activer la gestion des invités pour les machines virtuelles VMware vSphere avec Arc. - L’identité managée affectée par le système doit être activée sur la machine virtuelle Azure, le serveur Arc ou la machine virtuelle VMware vSphere avec Arc. Si l’identité managée affectée par le système n’est pas activée, elle est activée dans le cadre du processus d’installation via le portail Azure.
Systèmes d’exploitation pris en charge
Windows (x64) | Linux (x64) |
---|---|
● Windows Server 2022 (avec Server Core) ● Windows Server 2019 (avec Server Core) ● Windows Server 2016, version 1709 et 1803 (à l’exception de Server Core) ● Windows Server 2012, 2012 R2 (à l’exception de Server Core) ● Windows 10 Entreprise (y compris multisession) et Pro |
● Debian GNU/Linux 8,9,10 et 11 ● Ubuntu 18.04 LTS, 20.04 LTS et 22.04 LTS ● SUSE Linux Enterprise Server 15.2 et 15.3 ● Red Hat Enterprise Linux Server 7, 8, et 9 ● SUSE Linux Enterprise Server (SLES) 15 ● Rocky Linux 9 ● Oracle Linux 7 et 8 L’extension Hybrid Worker suivrait les délais de support du fournisseur de système d’exploitation. |
Autres conditions requises
Windows (x64) | Linux (x64) |
---|---|
Windows PowerShell 5.1 (télécharger WMF 5.1). PowerShell Core n’est pas pris en charge. | Le durcissement de Linux ne doit pas être activé. |
.NET Framework 4.6.2 ou ultérieur. |
Exigences relatives aux packages pour Linux
Package requis | Description | Version minimum |
---|---|---|
Glibc | Bibliothèque C de GNU | 2.5-12 |
Openssl | Bibliothèques OpenSSL | 1.0 (TLS 1.1 et TLS 1.2 sont pris en charge) |
Curl | Client web cURL | 7.15.5 |
Python-ctypes | Bibliothèque de fonctions étrangères pour Python | Python 2.x ou Python 3.x sont obligatoire |
PAM | Modules d’authentification enfichable |
Package facultatif | Description | Version minimum |
---|---|---|
PowerShell Core | Pour exécuter des runbooks PowerShell, vous devez avoir installé PowerShell Core. Pour obtenir des instructions, consultez Installation de PowerShell Core sur Linux | 6.0.0 |
Autorisations pour les informations d’identification Worker hybrides
Si le Worker hybride basé sur une extension utilise des informations d’identification Worker hybrides personnalisées, vérifiez que les autorisations de dossier suivantes sont affectées à l’utilisateur personnalisé pour éviter que les travaux ne soient suspendus.
Type de ressource | Autorisations du dossier |
---|---|
Azure VM | C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (lire et exécuter) |
Serveur avec Arc | C:\ProgramData\AzureConnectedMachineAgent\Tokens (read) C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (lire et exécuter). |
Remarque
- Quand un système dispose d’un UAC/LUA en place, les autorisations doivent être directement accordées, et non via une appartenance de groupe. Plus d’informations
- Pour le serveur avec Arc, veillez à réaffecter les autorisations lorsqu’elles sont supprimées chaque fois que l’agent ARC est mis à jour.
- Le Runbook Worker hybride n’est pas pris en charge actuellement pour les VMSS (Virtual Machine Scale Sets).
Migrer un Worker hybride basé sur un agent existant vers un Worker hybride basé sur l’extension
Pour tirer parti des avantages des Workers hybrides basés sur une extension, vous devez migrer tous les Workers hybrides basés sur un agent existants vers des Workers basés sur une extension. Un ordinateur Worker hybride peut coexister sur les deux plateformes : Basée sur un agent (v1) et Basée sur une extension (v2). L’installation basée sur une extension n’affecte pas l’installation ni la gestion d’un rôle Worker basé sur un agent.
Pour installer un Worker hybride sur un agent existant basé sur un Worker hybride, veillez à répondre aux prérequis avant de suivre ces étapes :
Sous Automatisation de processus, sélectionnez Groupes Workers hybrides, puis sélectionnez votre groupe de Workers hybrides existant pour accéder à la page Groupe Worker hybride.
Sous Groupe Worker hybride, sélectionnez Workers hybrides>+ Ajouter pour accéder à la page Ajouter des machines en tant que Worker hybride.
Cochez la case à côté d’un Worker hybride basé sur un agent (v1) existant. Si vous ne voyez pas votre Worker hybride basé sur l’agent répertorié, vérifiez que l’agent Azure Arc Connected Machine est installé sur l’ordinateur. Pour installer le
AzureConnectedMachineAgent
, consultez Connecter des machines hybrides à Azure à partir du portail Azure pour les serveurs avec Arc, ou consultez Gérer les machines virtuelles VMware Azure Arc pour activer la gestion des invités pour les machines virtuelles VMware vSphere avec Arc.Sélectionnez Ajouter pour ajouter la machine au groupe.
La colonne Platforme affiche le même worker hybride que Agent basé (V1) et extension basée sur (V2). Une fois que vous êtes sûr de l’expérience de Worker hybride basée sur l’extension et de l’utilisation, vous pouvez supprimer le Worker basé sur l’agent.
Pour la migration à grande échelle de plusieurs Workers hybrides basés sur agent, vous pouvez également utiliser d’autres canaux comme Bicep, les modèles ARM, les cmdlets PowerShell, l’API REST et l’interface Azure CLI.
Gérer l’extension Worker hybride en utilisant des modèles Bicep et ARM, l’API REST, Azure CLI et PowerShell
Vous pouvez utiliser le modèle Bicep pour créer un groupe Worker hybride, créer une machine virtuelle Windows Azure et l’ajouter à un groupe Worker hybride existant. En savoir plus sur Bicep.
Suivez les étapes mentionnées ci-dessous comme exemple :
- Créez un groupe worker hybride.
- Créez une machine virtuelle Azure ou un serveur avec Arc. Vous pouvez également utiliser une machine virtuelle Azure existante ou un serveur avec Arc.
- Connectez la machine virtuelle Azure ou le serveur avec Arc au groupe worker hybride créé ci-dessus.
- Générez un nouveau GUID et transmettez-le en tant que nom du Worker hybride.
- Activez l’identité managée affectée par le système sur la machine virtuelle.
- Installez l’extension Worker hybride sur la machine virtuelle.
- Pour confirmer si l'extension a été installée avec succès sur la machine virtuelle, dans le Portail Microsoft Azure, accédez à l'onglet >Extensions de la machine virtuelle et vérifiez l'état de l'extension Hybrid Worker installée sur la machine virtuelle.
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
Supprimer un Worker hybride basé sur un agent
Ouvrez une session PowerShell en mode Administrateur et exécutez la commande suivante :
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\HybridRunbookWorker\<AutomationAccountID>\<HybridWorkerGroupName>" -Force -Verbose
Sous Automatisation de processus, sélectionnez Groupes de Workers hybrides, puis votre groupe de Workers hybrides pour accéder à la page Groupe de Workers hybrides.
Sous Groupe de Workers hybrides, sélectionnez Workers hybrides.
Cochez la case à côté des machines que vous souhaitez supprimer du groupe de Workers hybrides.
Sélectionnez Supprimer pour supprimer le Worker hybride Windows basé sur un agent.
Remarque
- Une fois que vous avez désactivé la liaison privée dans votre compte Automation, la suppression du Runbook Worker hybride peut prendre jusqu’à 60 minutes.
- Une fois que vous avez supprimé le Worker hybride, le certificat d’authentification du Worker hybride sur l’ordinateur est valide pendant 45 minutes.
Étapes suivantes
- Pour en savoir plus sur runbook Worker hybride, consultez Vue d’ensemble du Runbook Worker hybride Automation.
- Pour déployer un Runbook Worker hybride basé sur l’extension, consultez Déployer un Runbook Worker hybride Windows ou Linux basé sur une extension dans Azure Automation.
- Pour découvrir les extensions de machine virtuelle Azure, consultez Fonctionnalités et extensions de machine virtuelle Azure pour Windows et Fonctionnalités et extensions de machine virtuelle Azure pour Linux.