Utiliser les outils d’automatisation d’infrastructure avec les machines virtuelles dans Azure

S’applique aux : ✔️ Machines virtuelles Linux ✔️ Machines virtuelles Windows ✔️ Groupes identiques flexibles ✔️ Groupes identiques uniformes

Pour créer et gérer des machines virtuelles de façon cohérente à grande échelle, une forme d’automatisation est généralement souhaitée. De nombreux outils et solutions permettent d’automatiser le déploiement et la gestion du cycle de vie de toute l’infrastructure Azure. Cet article présente certains des outils d’automatisation d’infrastructure utilisables dans Azure. Ces outils s’intègrent généralement dans l’une des approches suivantes :

Terraform

Terraform est un outil d’automatisation qui vous permet de définir et de créer une infrastructure Azure entière avec un format langage de modèle unique - le langage de configuration HashiCorp (HCL). Avec Terraform, vous définissez des modèles qui automatisent le processus de création du réseau, du stockage et des ressources de machine virtuelle pour une solution d’application donnée. Vous pouvez utiliser vos modèles Terraform existants pour d’autres plateformes avec Azure pour assurer la cohérence et simplifier le déploiement de l’infrastructure sans avoir à la convertir en modèle Azure Resource Manager.

Découvrez comment :

Azure Automation

Azure Automation utilise des runbooks pour traiter un ensemble de tâches sur les machines virtuelles que vous ciblez. Azure Automation est utilisée pour gérer des machines virtuelles existantes plutôt que pour créer une infrastructure. Azure Automation peut s’exécuter sur des machines virtuelles Linux et Windows, ainsi que localement sur des machines physiques ou virtuelles avec un Runbook Worker hybride. Vous pouvez stocker des runbooks dans un référentiel de contrôle de code source, tel que GitHub. Ces runbooks peuvent ensuite être exécutés manuellement ou selon une planification définie.

Azure Automation fournit également un service de Configuration d’état souhaité (DSC) qui vous permet de créer des définitions sur les configurations d’un ensemble donné de machines virtuelles. La configuration d’état souhaité vérifie ensuite que la configuration requise est en application et que la machine virtuelle reste cohérente. Azure Automation DSC s’exécute sur les machines Windows et Linux.

Découvrez comment :

Azure DevOps Services

Azure DevOps Services est une suite d’outils qui permet de partager et de suivre le code, d’utiliser des builds automatisées et de créer un pipeline d’intégration continue/de développement continu. Azure DevOps s’intègre avec Visual Studio et d’autres éditeurs pour simplifier son utilisation. Azure DevOps peut également créer et configurer des machines virtuelles Azure, puis déployer le code vers celles-ci.

Pour en savoir plus :

Modèle Azure Resource Manager

Azure Resource Manager est le service de déploiement et de gestion d’Azure. Il fournit une couche de gestion qui vous permet de créer, mettre à jour et supprimer des ressources dans votre abonnement Azure. Vous utilisez des fonctionnalités de gestion, telles que le contrôle d’accès, les verrous et les étiquettes, pour sécuriser et organiser vos ressources après le déploiement.

Découvrez comment :

Bicep

Bicep est un langage spécifique à un domaine (DSL) qui utilise la syntaxe déclarative pour déployer des ressources Azure. Dans un fichier Bicep, vous définissez l’infrastructure que vous voulez déployer sur Azure, puis utilisez ce fichier tout au long du cycle de vie de développement pour déployer votre infrastructure à plusieurs reprises. Vos ressources sont déployées de manière cohérente.

Commencez par le démarrage rapide.

Cloud-Init

Cloud-init est une méthode largement utilisée pour personnaliser une machine virtuelle Linux lors de son premier démarrage. Vous pouvez utiliser cloud-init pour installer des packages et écrire des fichiers, ou encore pour configurer des utilisateurs ou des paramètres de sécurité. Cloud-init étant appelé pendant le processus de démarrage initial, aucune autre étape ni aucun agent n’est nécessaire pour appliquer votre configuration. Pour plus d’informations sur la façon de mettre correctement en forme vos fichiers #cloud-config, consultez le site de documentation cloud-init. Les fichiers #cloud-config sont des fichiers texte encodés en base64.

Cloud-init fonctionne aussi sur les différentes distributions. Par exemple, vous n’utilisez pas apt-get install ou yum install pour installer un package. Au lieu de cela, vous pouvez définir une liste des packages à installer, après quoi cloud-init se charge d’utiliser automatiquement l’outil de gestion de package natif correspondant à la distribution que vous sélectionnez.

Nous travaillons activement avec nos partenaires de distribution Linux afin de mettre des images compatibles cloud-init à disposition sur Place de marché Azure. Ces images permettent à vos déploiements et configurations cloud-init de fonctionner de manière fluide avec des machines virtuelles et Virtual Machine Scale Sets. Pour en savoir plus sur cloud-init sur Azure :

DSC PowerShell

La Configuration d’état souhaité (DSC) PowerShell est une plateforme de gestion qui définit la configuration des machines cibles. Elle peut également être utilisée sur Linux via le serveur Open Management Infrastructure (OMI).

Les configurations d’état souhaité définissent les éléments à installer sur une machine et la procédure à suivre pour configurer l’hôte. Un moteur du Gestionnaire de configuration local (LCM) s’exécute sur chaque nœud cible qui traite les actions demandées en fonction des configurations envoyées. Un serveur collecteur est un service web qui s’exécute sur un hôte central pour stocker les configurations d’état souhaité et les ressources associées. Le serveur collecteur communique avec le moteur du Gestionnaire de configuration local sur chaque hôte cible pour fournir les configurations requises et signaler la conformité.

Découvrez comment :

Extension de Script personnalisé Azure

L’Extension de Script personnalisé Azure pour Linux ou Windows télécharge et exécute des scripts sur les machines virtuelles Azure. Vous pouvez utiliser l’extension lors de la création d’une machine virtuelle, ou à tout moment après l’exécution de la machine virtuelle.

Les scripts peuvent être téléchargés à partir du stockage Azure ou de n’importe quel emplacement public tel qu’un référentiel GitHub. Avec l’Extension de Script personnalisé, vous pouvez écrire des scripts dans n’importe quel langage qui s’exécute sur la machine virtuelle source. Ces scripts peuvent être utilisés pour installer des applications ou configurer la machine virtuelle comme vous le souhaitez. Pour sécuriser les informations d’identification, des informations sensibles telles que les mots de passe peuvent être stockées dans une configuration protégée. Ces informations d’identification ne sont déchiffrées qu’à l’intérieur de la machine virtuelle.

Découvrez comment :

Ansible

Ansible est un moteur d’automatisation de la gestion de la configuration, de la création de machine virtuelle ou du déploiement d’application. Ansible utilise un modèle sans agent, généralement avec des clés SSH, pour authentifier et gérer les machines cibles. Les tâches de configuration sont définies dans des playbooks, avec plusieurs modules Ansible disponibles pour effectuer des tâches spécifiques. Pour plus d’informations, consultez Comment fonctionne Ansible.

Découvrez comment :

Chef

Chef est une plate-forme d’automatisation qui permet de définir la configuration, le déploiement et la gestion de votre infrastructure. Certains composants incluent Chef Habitat pour l’automatisation du cycle de vie de l’application plutôt que de l’infrastructure, ainsi que Chef InSpec qui permet d’automatiser la conformité avec les exigences de sécurité et de stratégie. Les clients Chef sont installés sur les machines cibles, avec un ou plusieurs serveurs Chef centraux qui stockent et gèrent les configurations. Pour plus d’informations, consultez Une vue d’ensemble de Chef.

Découvrez comment :

Puppet

Puppet est une plate-forme d’automatisation de l’entreprise qui gère le processus de diffusion et de déploiement d’application. Les agents sont installés sur les machines cibles pour permettre à Puppet Master d’exécuter des manifestes qui définissent la configuration souhaitée de l’infrastructure Azure et des machines virtuelles. Puppet peut s’intégrer à d’autres solutions telles que Jenkins et GitHub pour un flux de travail devops amélioré. Pour plus d’informations, consultez Comment fonctionne Puppet.

Découvrez comment :

Packer

Packer automatise le processus de génération lorsque vous créez une image personnalisée de la machine virtuelle dans Azure. Grâce à Packer, vous pouvez définir le système d’exploitation et exécuter des scripts de post-configuration qui permettent de personnaliser la machine virtuelle pour vos besoins spécifiques. Une fois configurée, la machine virtuelle est ensuite capturée en tant qu’image d’un disque géré. Packer automatise le processus de création de la machine virtuelle source, les ressources réseau et de stockage, exécute des scripts de configuration, puis crée l’image de la machine virtuelle.

Découvrez comment :

Jenkins

Jenkins est un serveur d’intégration continue qui aide à déployer et à tester des applications. Il permet également de créer des pipelines automatisés pour la diffusion de code. Des centaines de plug-ins permettent d’étendre la plate-forme principale de Jenkins. Vous pouvez également l’intégrer à de nombreux autres produits et solutions via les webhooks. Vous pouvez installer Jenkins manuellement sur une machine virtuelle Azure, exécuter Jenkins à partir d’un conteneur Docker ou utiliser une image préconstruite d’Azure Marketplace.

Découvrez comment :

Étapes suivantes

De nombreuses options permettent d’utiliser les outils d’automatisation d’infrastructure dans Azure. Vous avez la possibilité d’utiliser la solution qui répond le mieux à vos besoins et à votre environnement. Pour commencer à essayer certains des outils intégrés à Azure, renseignez vous sur l’automatisation de la personnalisation d’une machine virtuelle Linux ou Windows.