Azure Stack HCI est à votre porte !

Le Cloud est présent dans beaucoup d’infrastructures IT. Utilisé à 100% ou seulement de manière partielle pour certains services, il offre une flexibilité inégalée, aussi bien dans son financement que dans les besoins techniques disponibles et les évolutions possibles.

Mais alors, si le cloud est merveilleux, pourquoi les principaux fournisseurs de cloud cherchent aussi à proposer des solutions dites hybrides (on-premise + cloud) ?

Peut-être qu’il en faut pour tous les goûts 😁?

D’abord, faisons un rapides tour de plusieurs concepts avant tester ensemble une solution hybride via un exercice que propose justement Microsoft.

Qu’est-ce que le cloud hybride ?

Le cloud hybride combine généralement deux types de cloud : public et privé. Par privé est souvent entendu local.

Un cloud hybride est un peu comme une voiture hybride. Les voitures hybrides combinent deux technologies totalement distinctes : un moteur qui brûle de l’essence et un autre qui consomme de l’énergie électrique. Chaque technologie fonctionne de manière totalement différente, et chacune a ses avantages et ses inconvénients. Cependant, lorsque les deux sont combinées efficacement, le résultat est une voiture plus performante que la plupart des voitures uniquement à essence et pourtant plus puissante que la plupart des voitures entièrement électriques. De même, les cloud hybrides combinent les avantages de plusieurs types d’environnements cloud pour une efficacité et une fonctionnalité accrue.

Oracle

Qu’est-ce qu’Azure Stack HCI ?

Azure Stack HCI est une solution développée par Microsoft pour justement aider les entreprises à exploiter les avantages d’un environnement hybride, expliqué précédemment, via les interfaces connues d’Azure et de Windows Admin Center.

Il s’agit d’une solution d’infrastructure hyperconvergée basée sur les technologies Azure de Microsoft. Elle permet de :

  • d’intégrer de façon transparente leur environnement
  • De créer une expérience hybride cohérente à Azure.
  • D’apporter toujours plus de scalabilité et flexibilité.
  • De conserver un haut niveau de sécurité et de conformité.
  • De profiter d’une passerelle de modernisation de l’infrastructure existante.

Existe-t-il du matériel certifié Azure Stack HCI ?

Microsoft met à disposition un site web dédié à Azure Stack HCI dont voici le lien. Vous pourrez y planifier votre solution en fonction des charges de travail prévues :

Peut-on tester Azure Stack HCI sans forcément acheter du matériel ?

Cela est possible, grâce à … Azure ! En effet, les fournisseurs de cloud autorisent pratiquement toutes les créations de ressources, donc on peut simuler un Azure Stack HCI dans le cloud de Microsoft.

Cette approche permet donc de ne pas dépenser de grandes sommes d’argent pour tester la solution Azure Stack HCI avant de se laisser convaincre. Pour cela je vous laisse lire les différentes étapes ci-dessous pour y parvenir :

La version originale de l’exercice conçu par Microsoft est également disponible en anglais sur leur page GitHub juste ici.

Rappel des prérequis :

Pour réaliser cet exercice sur Azure Stack HCI, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure valide

Afin de tester Azure Stack HCI, nous allons avoir besoin créer un environnement virtuel, dans lequel nous allons simuler la présence de nœuds HCI, mais aussi de Windows Admin Center.

Dans Azure, il est en effet possible d’imbriquer de la virtualisation. Cela demande malgré tout quelques exigences, comme le SKU de la machine virtuelle Hyper-V, mais aussi sa génération.

Important : Attention à ne pas laisser tourner l’environnement de démonstration Azure Stack HCI tourner un peu trop longtemps. Beaucoup de ressources Azure sont créées et le compteur des € défile assez vite 🤑.

Etape I – Déploiement de l’environnement virtuel sur Azure :

Commencez par cliquez sur le lien ci-dessous afin déployer les ressources nécessaires sur votre souscription Azure :

Renseignez les champs suivants, puis lancez la validation Azure :

Une fois la validation Azure réussie, cliquez-ici pour commencer la création :

Le déploiement dure environ 30 minutes, attendez que celui-ci se termine, puis cliquez-ici :

Constatez la présence de nombreuses ressources Azure créées pour cette démonstration, puis cliquez sur la machine virtuelle présente, appelée AzSHCIHost001 :

Rendez-vous dans le menu Bastion, puis cliquez-ici pour en déployer un :

Attendez environ 5 minutes que la création d’Azure Bastion se termine :

Modifier la règle NSG suivante créée dans le template Microsoft afin de débloquer l’accès RDP à votre machine Hyper-V :

Retournez sur votre machine virtuelle Hyper-V, puis lancez une session Bastion avec les identifiants renseignés lors de la création du template :

Sur la session RDP ouverte via Azure Bastion, cliquez-ici pour modifier le script de déploiement d’Azure Stack HCI :

Rendez-vous sur la ligne suivante pour modifier la ligne comme ceci :

AVANT :

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

APRES :

Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-WebRequest -Uri 'https://chocolatey.org/install.ps1' -OutFile 'install.ps1'; .\install.ps1 -ChocolateyDownloadUrl "https://community.chocolatey.org/api/v2/package/chocolatey/1.4.0"

Vous avez aussi la possibilité de récupérer celui-ci en version corrigée sur mon GitHub

Lancez le script, puis faites preuve d’un petit peu de patience, car celui dure environ … 2 heures 🤣

Si aucune erreur ne s’est manifestée durant le traitement, vous devriez apercevoir le message de succès suivant :

Si le script ne s’est pas correctement terminé, la commande PowerShell suivante permet d’effacer les ressources crées dans Hyper-V afin de pouvoir recommencer le lancement du script :

.\New-AzSHCISandbox.ps1 -Delete $true

Un tour rapide dans la console Hyper-V montre l’apparition de 3 machines virtuelles :

  • AzSHOST1 : nœud Azure Stack HCI 1
  • AzSHOST2 : nœud Azure Stack HCI 2
  • AzSMGMT : Console de management pour Windows Admin Center

Sur le bureau de votre machine virtuelle Hyper-V, une icône de type RDP vient de faire son apparition :

Notre environnement fictif de départ est maintenant terminé. Nous avons besoin d’enregistrer notre cluster Azure Stack HCI sur le portail Azure afin de commencer la facturation mais aussi tester le déploiement de services depuis le portail Azure.

Etape II – Enregistrement du Cluster Azure Stack HCI sur Azure :

Pour cela, cliquez sur l’icône RDP pour ouvrir une session sur la VM WAC puis renseignez les identifiants suivants (mot de passe : Password01) :

Notez la présence d’un domaine Active Directory nommé Contoso. Attendez quelques minutes que la session se charge entièrement :

Sur le bureau, ouvrez le raccourci menant à la page suivante et ayant un icône Google Chrome :

https://admincenter.contoso.com/

Renseignez les identifiants suivants (mot de passe : Password01) :

Attendez quelques secondes que se charge la console de Windows Admin Center :

Fermez la fenêtre de notification de Windows Admin Center :

Attendez environ 10 minutes que tous les modules présents dans Windows Admin Center soient bien mis à jour :

Une fois les mises à jour effectuées, les notifications suivantes devraient apparaître dans WAC :

Afin de pouvoir piloter votre Cluster de serveurs Azure Stack HCI, il est nécessaire de le rajouter dans la console WAC pour terminer la configuration.

Cliquez-ici pour ajouter votre cluster Azure Stack HCI à WAC :

Saisissez le nom AzStackCluster, attendez quelques secondes que WAC retrouve ce dernier, puis cliquez sur Ajouter :

Une fois l’ajout réussi, vérifiez la liste des connexions existantes avec WAC, puis cliquez sur votre cluster de serveurs :

Rendez-vous dans le menu appelé SDN Infrastructure :

Renseignez les identifiants suivants (mot de passe : Password01), puis cochez la case suivante :

Renseignez le contrôleur de réseau suivant, puis cliquez sur Continuer :

Constatez l’apparition des nouveaux menus suivants sous la section Réseau :

Afin de pouvoir utiliser pleinement le portail Azure pour piloter notre cluster Azure Stack HCI, il est nécessaire de passer par quelques étapes d’enregistrement.

Pour cela, rendez-vous toujours depuis WAC dans la section Azure Arc, puis cliquez sur le bouton suivant :

Cliquez-ici pour démarrer l’enregistrement de notre cluster sur Azure :

Utilisez le code Azure pour valider l’authentification Azure AD avec un compte disposant de suffisamment de droits sur la souscription Azure :

Une fois l’authentification Azure AD réussie, vous devriez recevoir l’information suivante, puis cliquez sur Authentifier :

Acceptez la demande de permission de Windows Admin Center avec le consentement global de l’organisation :

Vérifiez la disparition du message sur la page Azure Arc de votre WAC :

Avant d’aller plus loin, retournez sur votre portail Azure afin d’activer le fournisseur de ressources suivant sur votre souscription Azure :

Attendez environ deux minutes que le statut soit correctement changé sur le fournisseur de ressources :

Retournez sur Windows Admin Center, puis cliquez-ici :

Cliquez-ici pour démarrer le processus avec la connexion Azure Arc précédemment créée :

Renseignez les informations qui vous conviennent, puis cliquez sur Enregistrer :

La notification suivante devrait alors apparaître dans WAC :

Attendez environ 5 minutes pour confirmer le bon enregistrement :

Retournez sur le portail Azure afin de constater la présence de votre Azure Stack HCI, puis cliquez dessus :

Naviguez dans les différents menus pour mieux comprendre les informations remontées sur Azure.

Nous allons avoir maintenant besoin d’un autre composant, appelé Azure Resource Bridge. Si l’on souhaite gérer et déployer des ressources sur son cluster depuis Azure, celui-ci est indispensable.

Etape III – Configuration d’Azure Ressource Bridge :

Le pont de ressources Arc est une machine virtuelle empaquetée qui héberge un cluster Kubernetes de gestion nécessitant une gestion minimale des utilisateurs. La machine virtuelle est déployée sur l’infrastructure locale et une ressource ARM du pont de ressources Arc est créée dans Azure. Les deux ressources sont ensuite connectées, ce qui permet la gestion et l’utilisation en libre-service des machines virtuelles à partir d’Azure

Microsoft Learn

Ensuite, cliquez ici pour installer un second module, appelé Azure Resource Bridge :

Attention : certaines étapes sont à faire sur les 2 nœuds présents dans votre cluster Azure Stack HCI

Cliquez sur le lien suivant pour ouvrir le guide d’installation d’Arc Resource Bridge :

Retournez sur votre serveur Hyper-V, puis dans la console Hyper-V, cliquez sur le premier nœud de votre cluster Azure Stack HCI afin d’ouvrir une session :

Renseignez les identifiants suivants (mot de passe : Password01) :

Effectuez le choix 15 pour ouvrir une console PowerShell :

Profitez-en pour ouvrir Notepad depuis PowerShell afin de faciliter les copier / coller :

Saisissez la commande suivante pour installer les premiers modules nécessaires :

Install-PackageProvider -Name NuGet -Force 
Install-Module -Name PowershellGet -Force -Confirm:$false -SkipPublisherCheck

Continuez avec celles-ci pour installer d’autres modules :

Install-Module -Name Moc -Repository PSGallery -AcceptLicense -Force
Initialize-MocNode
Install-Module -Name ArcHci -Force -Confirm:$false -SkipPublisherCheck -AcceptLicense

Fermez la fenêtre PowerShell afin de revenir au menu principal, puis entrez le choix 13 pour redémarrer votre premier nœud :

Retournez sur votre serveur Hyper-V, puis dans la console Hyper-V, cliquez sur le second nœud de votre cluster Azure Stack HCI afin d’ouvrir une session :

Renseignez les identifiants suivants (mot de passe : Password01) :

Effectuez le choix 15 pour ouvrir une console PowerShell :

Profitez-en pour également ouvrir Notepad depuis PowerShell afin de faciliter les copier / coller :

Saisissez la commande suivante pour installer les même premiers modules nécessaires :

Install-PackageProvider -Name NuGet -Force 
Install-Module -Name PowershellGet -Force -Confirm:$false -SkipPublisherCheck

Continuez avec celles-ci pour installer les mêmes autres modules :

Install-Module -Name Moc -Repository PSGallery -AcceptLicense -Force
Initialize-MocNode
Install-Module -Name ArcHci -Force -Confirm:$false -SkipPublisherCheck -AcceptLicense

Fermez la fenêtre PowerShell afin de revenir au menu principal, puis entrez le choix 13 pour redémarrer votre second nœud :

Retournez sur votre serveur Hyper-V, puis dans la console Hyper-V, cliquez à nouveau sur le premier nœud de votre cluster Azure Stack HCI afin d’ouvrir une session :

Renseignez à nouveau les identifiants suivants (mot de passe : Password01) :

Effectuez à nouveau le choix 15 pour rouvrir une console PowerShell :

Saisissez la commande suivante pour installer le module CLI d’Azure, uniquement nécessaire sur le premier nœud :

$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; Remove-Item .\AzureCLI.msi

Fermez la fenêtre PowerShell afin de revenir au menu principal, puis entrez le choix 13 pour redémarrer à nouveau votre premier nœud :

Retournez sur votre serveur Hyper-V, puis dans la console Hyper-V, cliquez à nouveau sur le premier nœud de votre cluster Azure Stack HCI afin d’ouvrir une session :

Renseignez à nouveau les identifiants suivants (mot de passe : Password01) :

Effectuez à nouveau le choix 15 pour rouvrir une console PowerShell :

Rouvrez à nouveau Notepad depuis PowerShell afin de faciliter les copier / coller.

Préparer les variables suivantes puis lancez-les :

$VswitchName="sdnSwitch"
$ControlPlaneIP="192.168.1.200"
$csv_path="C:\ClusterStorage\S2D_vDISK1\"
$VMIP_1="192.168.1.201"   
$VMIP_2="192.168.1.202"
$DNSServers="192.168.1.254"
$IPAddressPrefix="192.168.1.0/24"
$Gateway="192.168.1.1"
$CloudServiceIP="192.168.1.203"

Lancez le script suivant pour préparer la configuration d’Azure Resource Bridge :

mkdir $csv_path\ResourceBridge

Set-MocConfig -workingDir $csv_path\ResourceBridge -imageDir $csv_path\imageStore -skipHostLimitChecks -cloudConfigLocation $csv_path\cloudStore -catalog aks-hci-stable-catalogs-ext -ring stable -CloudServiceIP $cloudServiceIP -createAutoConfigContainers $false

Install-Moc

Retirer les extensions du module PowerShell Az si jamais elles existaient déjà :

az extension remove --name arcappliance
az extension remove --name k8s-extension
az extension remove --name customlocation
az extension remove --name azurestackhci

Installer à nouveaux ces mêmes extensions Az :

az extension add --upgrade --name arcappliance
az extension add --upgrade --name k8s-extension
az extension add --upgrade --name customlocation
az extension add --upgrade --name azurestackhci

Renseignez les informations sur votre environnement Azure :

$subscription="d9b60b07-0ae9-4de3-bfdd-062268de474a"
$resource_group="azurestack-rg"
$location="westeurope"

Continuez avec le script suivant :

az login --use-device-code
az account set --subscription $subscription
az provider register --namespace Microsoft.Kubernetes --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
az provider register --namespace Microsoft.ExtendedLocation --wait
az provider register --namespace Microsoft.ResourceConnector --wait
az provider register --namespace Microsoft.AzureStackHCI --wait
az provider register --namespace Microsoft.HybridConnectivity --wait
$hciClusterId= (Get-AzureStackHci).AzureResourceUri
$resource_name= ((Get-AzureStackHci).AzureResourceName) + "-arcbridge"
$customloc_name= ((Get-AzureStackHci).AzureResourceName) + "-CL"

Saisissez le code Azure donnée dans le log des commandes Power Shell :

Utilisez un compte disposant de suffisamment de droits sur la souscription Azure :

Lancez le script suivant pour commencer la configuration K8s :

New-ArcHciConfigFiles -subscriptionID $subscription -location $location -resourceGroup $resource_group -resourceName $resource_name -workDirectory $csv_path\ResourceBridge -controlPlaneIP $controlPlaneIP -vipPoolStart $controlPlaneIP -vipPoolEnd $controlPlaneIP -k8snodeippoolstart $VMIP_1 -k8snodeippoolend $VMIP_2 -gateway $Gateway -dnsservers $DNSServers -ipaddressprefix $IPAddressPrefix -vswitchName $vswitchName

Continuez avec le fichier YAML pour la configuration K8s :

az arcappliance validate hci --config-file $csv_path\ResourceBridge\hci-appliance.yaml

Préparez votre environnement K8s avec la préparation au déploiement de pods :

az arcappliance prepare hci --config-file $csv_path\ResourceBridge\hci-appliance.yaml

Déployez le contenaire K8s dédié à la communication du module Azure Arc Bridge :

az arcappliance deploy hci --config-file  $csv_path\ResourceBridge\hci-appliance.yaml --outfile "$csv_path\ResourceBridge\kubeconfig"

Continuez avec le script suivant :

az arcappliance create hci --config-file $csv_path\ResourceBridge\hci-appliance.yaml --kubeconfig "$csv_path\ResourceBridge\kubeconfig"

Vérifiez que les deux statuts soient bien sur Succeded et Connected, retentez quelques minutes plus tard si nécessaire :

az arcappliance show --resource-group $resource_group --name $resource_name --query '[provisioningState, status]'

Continuez avec le script suivant :

az k8s-extension create --cluster-type appliances --cluster-name $resource_name --resource-group $resource_group --name hci-vmoperator --extension-type Microsoft.AZStackHCI.Operator --scope cluster --release-namespace helm-operator2 --configuration-settings Microsoft.CustomLocation.ServiceAccount=hci-vmoperator --config-protected-file $csv_path\ResourceBridge\hci-config.json --configuration-settings HCIClusterID=$hciClusterId --auto-upgrade true

Vérifiez que le statut soit bien sur Succeded, retentez quelques minutes plus tard si nécessaire :

az k8s-extension show --cluster-type appliances --cluster-name $resource_name --resource-group $resource_group --name hci-vmoperator --out table --query '[provisioningState]'

Terminez par la commande de création d’un emplacement personnalisé sur Azure. Ce dernier va nous être utile pour indiquer lors de la création de ressources depuis le portail Azure que celle-ci doit-être créée sur Azure Stack HCI :

az customlocation create --resource-group $resource_group --name paris --cluster-extension-ids "/subscriptions/$subscription/resourceGroups/$resource_group/providers/Microsoft.ResourceConnector/appliances/$resource_name/providers/Microsoft.KubernetesConfiguration/extensions/hci-vmoperator" --namespace hci-vmoperator --host-resource-id "/subscriptions/$subscription/resourceGroups/$resource_group/providers/Microsoft.ResourceConnector/appliances/$resource_name" --location $location

Constatez la bonne création de ce dernier depuis le portail Azure :

Retournez sur la page Azure de votre cluster Azure Stack HCI afin de constater l’avancement des prérequis :

Azure Resource Bridge est maintenant correctement installé. Nous allons enfin pouvoir créer notre machine virtuelle depuis le portail Azure, et déployée directement sur un des 2 nœuds de notre cluster.

Etape IV – Création de la VM sur le Stack :

Cliquez comme ceci pour transférer vers votre cluster une image de VM provenant de la marketplace Microsoft d’Azure :

Renseignez les champs comme ceci, puis lancez la validation :

Une fois la validation réussie, cliquez-ici pour commencer le transfert de données de l’image de Windows Server vers votre cluster :

Ce processus est assez long, comptez environ une bonne heure avant que le transfert de l’image ne se termine :

En cas d’erreur lors du transfert, relancez celui-ci afin d’avoir une image complète sur votre cluster :

De retour sur votre premier nœud de votre cluster Azure Stack HCI, lancez la commande suivante pour initialiser le réseau virtuel :

$vnetName="vnetwork-paris3"
New-MocGroup -name "Default_Group" -location "MocLocation"
New-MocVirtualNetwork -name "$vnetName" -group "Default_Group" -tags @{'VSwitch-Name' = "$vswitchName"} 
az azurestackhci virtualnetwork create --subscription $subscription --resource-group $resource_group --extended-location name="/subscriptions/$subscription/resourceGroups/$resource_group/providers/Microsoft.ExtendedLocation/customLocations/paris" type="CustomLocation" --location $Location --network-type "Transparent" --name $vnetName 

Retournez sur le portail Azure afin de constater sa bonne création :

Cliquez ensuite ici pour créer votre première VM sur votre Stack HCI :

Renseignez les informations de base :

Définissez sa taille et son identifiant local, puis cliquez sur Suivant :

Ajoutez si besoin des disques de données, puis cliquez sur Suivant :

Ajoutez une carte réseau :

Utilisez le réseau virtuel créé précédemment :

Cliquez-ici pour lancer la validation :

Une fois la validation Azure réussie, cliquez sur Créer :

Le déploiement des ressources est en cours sur votre cluster, comptez environ 30 minutes pour que celui-ci se termine :

Au bout de quelques minutes Il est aussi possible de suivre la création de la VM depuis la console WAC :

Une fois la création de la machine virtuelle terminée, cliquez-ici pour y accéder :

Prenez le temps de vérifier la configuration de celle-ci :

Retournez sur la console WAC afin d’initialiser une connection directe :

Renseignez les identifiant votre compte admin chez Contoso (mot de passe : Password01) :

Cliquez-ici pour déverrouiller la session distante :

Renseignez les identifiants indiqués lors de la création de la VM depuis le portail Azure :

Vous voilà connecté sur votre VM hébergée sur un stack HCI virtuel, hosté sur un serveur Hyper-V, lui-même hosté sur Azure 😁😎💪 :

Conclusion

Après quelques jours de tests, l’intégration des outils Azure et WAC pour piloter le Cluster un véritable tour de force de Microsoft ! Nul doute que certains projets ou infrastructures ne peuvent être hébergées sur le Cloud pour un grand nombre de raisons. C’est pour cela que Microsoft et les autres fournisseurs de Cloud se doivent de proposer des solutions « à mi-chemin ».

Il faudra enfin voir ce que ça donne dans la version publique généralisée car encore beaucoup de scripts à faire dont beaucoup encore en préversion.

Ne bougez pas, Azure Arc vient à vous !

Ayant eu l’occasion de participer à un évènement conjoint entre TD SYNNEX, Microsoft et DELL et dédié à Azure Stack HCI, j’ai pu m’intéresser au service qui oeuvre dans l’ombre : Azure Arc. L’ouverture d’Azure sur d’autres sites IT que leurs propres datacenters est indispensable, beaucoup d’architectures IT reposent en effet sur des serveurs locaux, ou sont déjà hébergées auprès d’autres fournisseurs Cloud.

Dans cet article, nous allons effectuer ensemble plusieurs méthodes d’intégration très facile de serveurs au service Azure Arc. Nous en profiterons pour faire tour dans les fonctionnalités disponibles gratuitement ou payantes sur les ressources Arc déployées.

Qu’est-ce qu’Azure Arc ?

Azure Arc est une passerelle qui étend la plateforme Azure pour vous aider à créer des applications et des services ayant la souplesse nécessaire pour fonctionner dans des centres de données, à la périphérie et dans des environnements multiclouds.

Microsoft

Combien coûte Azure Arc ?

A la base, Azure Arc ne coûte rien. Il vous permet d’effectuer les actions suivantes sans débourser un seul centime :

  • Inventaires des ressources Azure Arc
  • Accès et sécurisation via l’attribution de droits RBAC
  • Gestion via l’outil Windows Admin Center

Mais certains services annexes sont payants :

  • Serveur SQL avec Azure Arc
  • Defender for Cloud
  • Azure Policy Guest Configuration
  • Azure Insights
  • Logs

Puis-je tester moi-même Azure Arc avec une VM Azure ?

Non cela n’est pas possible aussi facilement : Azure n’autorise pas d’intégrer directement une machine virtuelle provenant dans la Marketplace Microsoft dans Azure Arc :

Seulement tout le monde ne dispose pas d’une infrastructure IT prête à servir de cobaye pour tester Azure Arc. C’est pourquoi Microsoft propose Azure Arc Jumpstart.

Le Jumpstart fournit des guides étape par étape pour des scénarios Azure Arc indépendants qui intègrent autant d’automatisation que possible, des captures d’écran et des échantillons de code détaillés, ainsi qu’une expérience riche et complète lors de la prise en main de la plateforme Azure Arc.

azurearcjumpstart.io

Pour en avoir testé quelques-uns, c’est très facile et très bien expliqué.

De mon côté, je vous propose une alternative via un exercice facile pour intégrer des serveurs sur Azure Arc via l’utilisation de ressources uniquement hébergées sur Azure.

Etape 0 – Rappel des prérequis :

Les prérequis suivants sont nécessaires pour réaliser cette démonstration d’Azure Arc :

  • Un tenant Microsoft
  • Une souscription Azure valide

Etape I – Déploiement d’un template ressources :

Pour créer des ressources intégrables dans Azure Arc, j’utilise un template développé par Microsoft et disponible depuis GitHub : Line-of-business application migration : à la base, ce template est destiné à tester le service Azure Migrate.

Ce dernier vous propose de déployer un serveur Hyper-V, dans lequel se trouve un applicatif web réparti sur plusieurs machines virtuelles et une base de données SQL.

Seule la partie initiale, encadrée en rouge, nous intéresse pour Azure Arc :

Par ce template, nous allons donc déployer une machine virtuelle Standard D8s v3 (8 vCPU, 32 GB memory) avec un rôle Hyper-V. Cette dernière hébergera 4 machines virtuelles :

  • Windows Server 2016 + SQL Server 2016
  • Windows Server 2012 Frontend web
  • Windows Server 2012 Frontend web
  • Ubuntu WAF

Comme annoncé plus haut, nous allons uniquement nous intéresser à la première étape : déploiement de l’application web via la machine virtuelle Hyper-V

Pour cela, cliquez ici pour charger la configuration du template directement dans votre tenant :

Renseignez les champs suivants et continuez :

Par défaut :
Le nom d’utilisateur demouser
Le mot de passe demo!pass123

Lancez la création et attendez une heure environ :

Prévoyez au moins une heure à partir du début du déploiement du template pour couvrir l’exécution des scripts.

Remarque : le déploiement du template prend environ 6 à 7 minutes. Une fois le déploiement du modèle terminé, plusieurs scripts supplémentaires sont exécutés pour amorcer l’environnement de laboratoire.

Récupérez l’adresse IP publique suivante :

Ouvrez un nouvel onglet depuis votre navigateur internet avec celle-ci. Vous devriez voir un site web affichant des réservations fictives d’hôtels :

Un déploiement correctement terminé devrait vous afficher cette page.

Supprimez le second groupe de ressources destiné aux tests d’Azure Migrate. Nous ne l’utiliserons pas dans le cadre de nos tests sur Azure Arc :

Ouvrez la machine virtuelle SmartHotelHost et cliquez sur Bastion :

Le service Bastion n’est pas créé, lancez son déploiement avec la configuration par défaut :

N’attendez pas la fin du déploiement de Bastion pour continuer.

Etape II – Configuration d’Azure Arc

La configuration d’Azure Arc est très rapide, utilisez la barre de recherche d’Azure pour retrouver le service Azure Arc :

Avant de commencer l’intégration de machines virtuelles à Azure Arc, nous allons créer un principal de service dédié à cette tâche. Ce principal de service va être utilisé pour l’authentification automatique pendant le processus d’intégration des ressources dans Azure Arc.

Cliquez dans le menu suivant :

Cliquez sur Créer :

Renseignez les champs, puis cliquez sur Créer :

Prenez soin de copier l’ID et le secret de principal de service dans un bloc-notes :

Revenez sur la page d’Azure Arc et constatez son apparition :

Une fois Azure Bastion entièrement déployé, retournez sur votre machine virtuelle SmartHotelHost, puis lancez une connexion RDP via Azure Bastion :

Renseignez les identifiants utilisés dans le template, puis cliquez sur Connecter :

La session RDP d’Azure Bastion s’ouvre alors dans un nouvel onglet de votre navigateur web :

Retournez sur le service Azure Arc depuis votre portail Azure, puis cliquez sur Ajouter dans la section Serveurs :

Plusieurs méthodes d’intégration à Azure Arc sont possibles. Le choix de la méthode va surtout dépendre du volume d’intégration à réaliser. Nous allons en tester plusieurs pour vous faire une meilleure idée.

Etape III – Test d’un ajout simple de serveur :

Cette méthode correspond à l’ajout d’un serveur unique sur Azure Arc. Ce premier script effectue les opérations suivantes :

  • Récupération de l’agent depuis le Centre de téléchargement Microsoft
  • Installation de l’agent sur le serveur
  • Création de la ressource serveur compatible avec Azure Arc

Pour utiliser ce script, cliquez comme ceci :

Azure commence par vous présenter les prérequis nécessaires pour assurer la communication entre le serveur et Azure Arc.

La communication repose sur le port 443 (HTTPS), cela nécessite une ouverture de pare-feu pour les flux sortant, et éventuellement la prise en charge d’un service proxy si besoin :

Aucun blocage réseau n’est présent dans notre environnement de test.

Cliquez sur Suivant et renseignez les champs :

Renseignez si besoin les étiquettes appropriées, puis cliquez sur Suivant :

Copiez le script suivant dans votre presse-papier :

Retournez sur la session RDP ouverte grâce à Azure Bastion, puis ouvrez la console Hyper-V :

Connectez-vous à la machine Windows smarthotelweb1 :

Renseignez le mot de passe de session Windows : demo!pass123

Dans cette nouvelle session, ouvrez la console PowerShell :

Collez le script donné par Azure Arc et appuyez sur Entrée pour lancer son exécution :

Comme attendu, le script procède au téléchargement et à l’installation de l’agent :

Identifiez-vous avec le compte Azure AD adéquat pour continuer le processus d’intégration :

Validez le processus d’authentification par un challenge MFA si besoin :

Fermez la fenêtre d’Internet Explorer :

Le script vous confirme la bonne création de l’objet serveur dans Azure Arc :

Retournez sur la page des serveurs Azure Arc, rafraîchissez la page si besoin :

Etape IV – Test d’un ajout de plusieurs serveurs :

Pour ajouter plusieurs serveurs à la fois sur Azure Arc, nous pouvons utiliser la seconde option.

Celle-ci génère un facilement script transportable puisqu’il gère l’authentification Azure via l’exploitation du principal de service créé précédemment. Ce script effectue les opérations suivantes :

  • Récupération de l’agent depuis le Centre de téléchargement Microsoft
  • Installation de l’agent sur le serveur
  • Création de la ressource serveur sur Azure Arc

Pour continuer, cliquez comme ceci :

Renseignez les champs et le principal de service, puis cliquez sur Suivant :

Renseignez si nécessaire les étiquettes appropriées, puis cliquez sur Suivant :

Copiez le script dans le presse-papier :

Retournez sur la session d’Azure Bastion. Sur la console Hyper-V, connectez-vous à la machine smarthotelweb2 :

Renseignez le même mot de passe : demo!pass123

Ouvrez la console PowerShell :

Collez votre script en prenant bien soin de remplacer le secret du principal de service par celui donné lors de sa création :

Attendez que le traitement d’intégration se termine :

Retournez sur la page des serveurs d’Azure Arc, rafraîchissez la page si besoin :

Nul besoin de fournir une authentification manuelle d’Azure, ce script est donc destiné à être utilisé pour importer massivement des serveurs sur Azure Arc.

Etape V – Test d’un ajout d’un serveur Linux

Azure Arc supporte également les serveurs fonctionnant sous distribution Linux ,via l’utilisation d’un autre script spécifique. Celui effectue les actions suivantes :

  • Récupération du script d’installation à partir du Centre de téléchargement Microsoft
  • Configuration du gestionnaire de packages pour approuver le référentiel
  • Téléchargement de l’agent à partir du référentiel de logiciels Linux de Microsoft
  • Installation l’agent sur le serveur
  • Création de la ressource de serveur sur Azure Arc

Pour continuer, cliquez encore une fois sur la seconde option :

Renseignez à nouveau les champs et le principal de service, puis cliquez sur Suivant :

Renseignez si besoin les étiquettes appropriées, puis cliquez sur Suivant :

Copiez le script dans le presse-papier :

Retournez sur la session d’Azure Bastion. Depuis le serveur Hyper-V, ouvrez directement une console PowerShell et connectez-vous à la machine UbuntuWAF via SSH:

Renseignez le mot de passe : demo!pass123

Collez le script donné par Azure Arc en prenant soin de modifier le secret, puis appuyez sur Entrée pour lancer son exécution :

Laissez la machine redémarrer au besoin :

Une fois le script correctement terminé, vérifiez sur le service Azure Arc l’apparition du serveur Linux :

Etape VI – Test d’un ajout d’un serveur SQL

Une machine virtuelle hébergeant un serveur SQL est également compatible avec Azure Arc et vous permet de le gérer dans votre inventaire. Le processus repose toujours sur le lancement d’un script. Ce dernier effectue les actions suivantes :

  • Vérification de la connectivité de votre environnement à Azure et à la machine spécifiée
  • Intégration de la machine hôte via l’agent Azure Connected Machine si absent
  • Initiation de la découverte d’instances SQL Server
  • Ajout des instances SQL Server de votre machine cible à Azure Arc

Cliquez comme ceci :

Renseignez les champs, puis cliquez sur Suivant :

Copiez le script dans le presse-papier :

Retournez sur la session d’Azure Bastion, sur la console Hyper-V, ouvrez une connexion vers le serveur smarthotelSQL1 :

Renseignez le mot de passe : demo!pass123 :

Désactivez la protection d’Internet Explorer :

Téléchargez Microsoft Edge par ce lien :

Validez les pop-ups d’Edge :

Ouvrez la console PowerShell :

Collez le script précédemment donné par Azure Arc et validez avec la touche Entrée :

Authentifiez-vous avec votre compte Azure. Si aucune fenêtre ne s’ouvre, saisissez l’URL dans votre navigateur web et authentifiez-vous avec votre compte Azure:

Cliquez sur Continuez :

Attendez que le script termine l’intégration du serveur SQL sur Azure Arc :

Une fois terminé, retrouvez le serveur SQL dans la liste des serveurs d’Azure Arc :

L’agent WindowsAgent.SqlServer est bien présent dans les extensions du serveur :

Retrouvez aussi le serveur SQL dans la liste ci-dessous d’Azure Arc :

Comme un serveur SQL Azure, cette intégration sur Azure Arc apporte une visibilité des bases de données ou apporte une intégration avec Microsoft Defender for SQL :

Etape VII – Test de fonctionnalités d’Azure Arc

Un grand nombre de fonctionnalités sont disponibles pour faciliter la gestion des serveurs intégrés sur Azure Arc. J’en ai sélectionné quelques-unes pour vous :

Windows Admin Center

Inauguré en 2018, Windows Admin Center est une interface web destinée à la configuration de serveurs, comme le ferait déjà Server Manager, mais à distance.

Voici un poster Microsoft récapitulant les fonctionnalités de Windows Admin Center :

Il est également possible de télécharger Windows Admin Center sur n’importe quelle machine Windows 10 (version 1709 ou ultérieure), ou Windows Server (version 2016 ou ultérieure) :

Dans notre exemple, l’installation de Windows Admin Center est nécessaire avant de pouvoir l’utiliser :

Lancez l’installation de Windows Admin Center :

Attendez plusieurs minutes :

Une fois terminée, la notification suivante apparaît alors :

Retournez sur le groupe des ressources Azure Arc pour y ajouter un rôle RBAC supplémentaire à votre identité Azure AD :

Ajoutez le rôle comme ceci :

Retournez sur Windows Admin Center et constatez la disparition de la notification, puis connectez-vous :

Patientez si besoin plusieurs minutes.

Retrouvez la console Windows Admin Center et toutes ses fonctionnalités, comme :

  • Accès au registre Windows
  • Configuration réseau et pare-feu
  • Accès aux journaux d’évènements Windows
  • Explorateur de fichiers

Il est même possible d’ouvrir une session RDP depuis Windows Admin Center ????

Renseignez le mot de passe de session : demo!pass123

Defender for Cloud

Microsoft Defender pour les serveurs fournit la détection des menaces ainsi que des défenses avancées à vos machines Windows et Linux, qu’elles s’exécutent dans Azure, AWS, GCP ou localement. Microsoft Defender pour les serveurs est disponible dans deux plans :Microsoft Doc

Autrement dit, l’intégration d’une ressource dans Microsoft Defender active un grand nombre de mesures de sécurité (capteurs de faille, évaluation des vulnérabilités, threat intelligence, …), mais apporte également la possibilité de piloter ses alertes et ses incidents depuis le centre de sécurité Microsoft.

Deux plans sont disponibles selon le serveur concerné et les fonctionnalités recherchées. Le plan 2 correspond à l’ancien plan appelé Defender for Server :

La liste des avantages de Defender for Server se trouve ici.

L’activation de Defender for Server est facile, cliquez sur un des serveurs Azure Arc, puis rendez-vous dans la section Sécurité et enfin cliquez comme ceci :

Cliquez sur la souscription hébergeant vos ressources Azure Arc :

Activez le plan destiné à Defender for Servers :

Que le serveur soit sous Linux ou Windows, l’installation d’agent est réalisé de la même manière que pour des ressources Azure :

Azure Policy Guest configuration

Comme pour des ressources Azure, Azure Policy prend en charge l’audit de l’état de votre serveur compatible avec Azure Arc grâce aux politiques de configuration des invités. Les définitions de configuration d’invité d’Azure Policy peuvent auditer ou appliquer des paramètres à l’intérieur de la machine.

Il est à noter que ce service est payant pour des ressources non-Azure :

Contrairement à Defender for Cloud où l’activation est possible depuis une souscription Azure pour l’ensemble des ressources de même type, l’activation de cette fonctionnalité doit s’effectuer sur chacun des serveurs Azure Arc :

Cochez les cases voulues :

Les nouvelles polices sont bien visibles, mais en attente de lancement :

Retournez sur l’Hyper-V pour arrêter la machine virtuelle :

Une fois arrêté, redémarrer là :

Attendez un bon quart d’heure pour espérer voir des résultats sur les polices :

Surveillance

Comme pour les ressources Azure, la sauvegarde des logs est aussi disponible. L’activation de Defender for Server Plan 2 automatise sa mise en place et intègre dans le coût 500 Mo journalier pour les logs :

Insights

L’activation de capacités de surveillance supplémentaires permet d’obtenir des informations sur les performances et les dépendances de vos ressources de l’Arc.

Cliquez-ici pour configurer les paramétrages :

Activez le service :

Un Log Analytics Workspace est nécessaire. Choisissez-en un existant ou créez-en un nouveau :

En entendant le déploiement complet, consultez la liste des extensions pour voir apparaître AMA :

AzureMonitorWindowsAgent pour Windows
AzureMonitorLinuxAgent pour Linux

Il faut bien attendre un peu pour avoir de la donnée et en tirer des analyses intéressantes.

Il restera encore beaucoup à dire sur d’autres fonctionnalités, telles que Machine Configuration ou Centre de gestion des mises à jour, …

Conclusion

Microsoft démontre sous ouverture à d’autres environnements via Azure Arc. La centralisation des opérations sur le portail Azure sans tenir compte de la provenance de la ressource IT est une belle avancée car elle facilite la gestion d’infrastructure. Cela permet en plus de pouvoir toujours profiter des derniers services ajoutés par Microsoft.