Migrer les workers hybrides basés sur un agent existants vers les workers hybrides basés sur les extensions

Important

Runbook Worker hybride utilisateur basé sur un agent (Windows et Linux) Azure Automation sera mis hors service le 31 août 2024 et ne sera plus pris en charge après cette date. Avant le 31 août 2024, vous devez terminer la migration des Runbooks Workers hybrides utilisateur basés sur un agent vers des workers basés sur des extensions. De plus, à partir du 1er novembre 2023, il ne sera plus possible de créer de nouveaux travailleurs hybrides basés sur des agents. Plus d’informations

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
● CentOS Linux 7 et 8
● 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 un agent utilise des informations d’identification Worker hybride personnalisées, vérifiez que les autorisations suivantes sont affectées à l’utilisateur personnalisé pour éviter que les travaux ne soient suspendus sur le Worker hybride basé sur l’extension.

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 (lire)
C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (lire et exécuter)

Remarque

  • 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 l’extension Worker hybride sur un Worker hybride basé sur un agent existant, procédez comme suit :

  1. 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.

  2. Sous Groupe Worker hybride, sélectionnez Workers hybrides>+ Ajouter pour accéder à la page Ajouter des machines en tant que Worker hybride.

  3. 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.

    Capture d’écran de l’ajout de machines comme workers hybrides.

  4. 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.

    Capture d’écran du champ Plateforme montrant un worker hybride basé sur un agent ou sur une extension.

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 :

  1. Créez un groupe worker hybride.
  2. 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.
  3. Connectez la machine virtuelle Azure ou le serveur avec Arc au groupe worker hybride créé ci-dessus.
  4. Générez un nouveau GUID et transmettez-le en tant que nom du Worker hybride.
  5. Activez l’identité managée affectée par le système sur la machine virtuelle.
  6. Installez l’extension Worker hybride sur la machine virtuelle.
  7. 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

  1. Ouvrez une session PowerShell en mode Administrateur et exécutez la commande suivante :

     Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\HybridRunbookWorker\<AutomationAccountID>\<HybridWorkerGroupName>" -Force -Verbose
    
  2. 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.

  3. Sous Groupe de Workers hybrides, sélectionnez Workers hybrides.

  4. Cochez la case à côté des machines que vous souhaitez supprimer du groupe de Workers hybrides.

  5. 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