Accueil Technologie
Comment automatiser la création de machines virtuelles dans Azure à l’aide de cloud-init ?

Comment automatiser la création de machines virtuelles dans Azure à l’aide de cloud-init ?

Si vous avez déjà configuré une machine virtuelle, vous savez comment cela fonctionne. Vous cliquez ici et là, vous cliquez encore, et à la fin, vous avez un système configuré. Mais il vous reste à installer les logiciels et à configurer la machine virtuelle selon vos préférences.


Imaginez maintenant que vous souhaitiez configurer des centaines de machines virtuelles. Il n’est pas très efficace de cliquer pour procéder à l’installation. Vous devez plutôt automatiser le processus autant que possible, et c’est là que cloud-init entre en jeu.

Voyons comment automatiser l’installation du système d’exploitation et la configuration des machines virtuelles à l’aide de cloud-init dans Microsoft Azure.


Pourquoi utiliser cloud-init pour automatiser la création de machines virtuelles ?

cloud-init est un puissant outil d’automatisation du déploiement développé par Canonical, la société à l’origine d’Ubuntu.

Avec cloud-init, vous pouvez installer et déployer des systèmes d’exploitation Linux et configurer d’autres aspects d’une VM. Par exemple, vous pouvez utiliser cloud-init pour configurer des comptes utilisateurs, installer et configurer des logiciels, ajouter des clés SSH, etc.

À l’heure actuelle, la majorité des fournisseurs de services en nuage tels qu’Azure, Linode et Amazon Web Services (AWS) prennent en charge cloud-init.

Bien que cloud-init ait débuté sur Ubuntu, il prend désormais en charge toutes les principales distributions Linux, telles qu’openSUSE, Debian, Red Hat Enterprise Linux (RHEL), etc.

Outre le déploiement de logiciels dans le nuage, vous pouvez également utiliser cloud-init pour configurer et installer des logiciels sur des serveurs sur site ou des environnements virtuels tels que VirtualBox, KVM et VMware.

Nous allons utiliser la plateforme cloud Microsoft Azure pour automatiser le déploiement d’un serveur Ubuntu à l’aide de cloud-init.

Étape 1 : Création d’un script cloud-init

Les scripts cloud-init utilisent des modules pour configurer différents aspects de votre système. Par exemple, vous utiliserez le module utilisateurs pour configurer les informations et les comptes des utilisateurs, et le module wireguard pour configurer WireGuard, etc. Il existe des tonnes d’autres modules que vous pouvez utiliser.

Créons un script cloud-init pour automatiser la plupart des choses que vous configurez lors de l’installation d’une nouvelle machine virtuelle.

Nous allons créer un utilisateur nommé « mwiza » et lui attribuer un mot de passe. Pour des raisons de simplicité, nous utiliserons un mot de passe en texte brut, mais vous pouvez l’encrypter si vous le souhaitez. De plus, ajoutez la clé SSH de l’utilisateur aux clés autorisées. Cela vous permettra de désactiver ultérieurement les connexions par mot de passe SSH pour une meilleure sécurité.

Outre la création d’un nouvel utilisateur, le script doit effectuer les opérations suivantes :

  • Écriture d’un fichier : Créez un fichier simple et écrivez-y du contenu à l’aide de la fonction write_files module. Le fichier sera placé dans le répertoire personnel. Vous pouvez utiliser les mêmes concepts pour créer des fichiers plus complexes à l’avenir.
  • Exécution des commandes : Nous allons exécuter des commandes simples pour configurer le pare-feu UFW, mais il pourrait s’agir de n’importe quelle autre commande Linux. Utilisez l’outil runcmd module permettant d’exécuter n’importe quelle commande de votre choix ; il est similaire à l’exécution de commandes Linux en exécutant des scripts Bash.
  • Configuration des locales : Cette fonction permet de définir vos paramètres locaux préférés, tels que la disposition du clavier, la langue préférée, le fuseau horaire, etc.
  • Installer les paquets : Utilisez votre gestionnaire de paquets préféré pour installer les paquets sur votre système. Par exemple, sur les systèmes basés sur Debian, vous pouvez utiliser APT.

Ce ne sont que quelques-uns des modules que vous pouvez utiliser à partir de cloud-init ; il existe plusieurs autres modules pour automatiser toutes sortes de choses.

Voici le script complet de cloud-init pour configurer le nouveau compte utilisateur. N’oubliez pas de remplacer la clé SSH par la bonne. N’hésitez pas non plus à modifier le nom d’utilisateur et tout autre détail.

 vim: syntax=yaml

# Add system users here
users:
  - name: mwiza
  groups: users, sudo
  shell: /bin/bash
  gecos: mwiza
  plain_text_passwd: Live-laugh-love12345G123
  lock_passwd: false
  ssh_authorized_keys:
    - ssh-ed25519 BSHSDSDS3NzaC1sdfSDGSDSDJ1KSDB:PWELJWEEWeKBrkXWbLJBs;ldfkagfafk===C6li71Ra6i+NKkajdfi userkey@email.com

# Install, update, and upgrade packages
package_upgrade: true
package_update: true
package_reboot_if_require: true

packages:
  - traceroute
  - net-tools
  - fail2ban

# Set locales
locale: en_UK
timezone: Etc/UTC
keyboard:
  layout: nb

write_files:
- path: /etc/salt/minion.d/master_ip_port.conf
content: |
master: salt
master_port: 4506
publish_port: 4505
- path: /home/mwiza/cloud-init.txt
content: |
created by cloud-init in azure

# Running Bash commands to configure software and services
runcmd:
  - ufw enable
  - ufw allow ssh
  - ufw allow 80
  - systemctl enable ufw

# Power off the VM after initialization is finalized
shutdown: poweroff

Le script cloud-init utilise YAML, assurez-vous donc que l’indentation est correcte, sinon il ne fonctionnera pas comme prévu.

Étape 2 : Création de la ressource de machine virtuelle

L’étape suivante consiste à créer la ressource nécessaire dans Azure pour la machine virtuelle. Connectez-vous à Azure si vous avez déjà un compte ou créez un compte d’essai gratuit en vous rendant sur azure.microsoft.com.

Sur la page d’accueil du portail Azure, cliquez sur le bouton Créer une ressource …]. Dans la liste des services Azure les plus populaires, sélectionnez Machine virtuelle.

La page suivante vous donne des informations sur la création des ressources de la VM, telles que le disque dur, le réseau, etc.

Donnez un nom significatif à votre VM et sélectionnez la région de déploiement. Créez également un groupe de ressources pour votre VM ou utilisez un groupe existant.

Sous l’onglet Authentification sélectionnez le type d’authentification Mot de passe et indiquez votre nom d’utilisateur et un mot de passe fort.

Après avoir rempli tous les champs de cette page, vos coordonnées devraient ressembler à ce qui suit.

page d'initialisation vm sur azure cloud provider

Étape 3 : Ajout du script cloud-init

Ensuite, cliquez sur le bouton Avancé pour ajouter le script de démarrage du nuage. Copiez et collez le script de démarrage du nuage de la première étape dans le champ de données personnalisé.

ajout d'un script cloud-init à une vm azure

Enfin, cliquez sur le bouton Réviser + créer …et le bouton … Si tout est correct, le test est réussi. Dans le cas contraire, le créateur de la VM Azure vous guidera sur les corrections à apporter.

Étape 4 : Connexion à votre machine virtuelle

Utilisez les informations de présentation de la VM pour obtenir l’adresse IP publique de votre machine virtuelle et connectez-vous via SSH. Si vous avez utilisé la bonne clé SSH, le système ne vous demandera pas d’entrer le mot de passe de l’utilisateur.

Une fois connecté, vous pouvez vérifier que les fichiers que vous vouliez créer via le script sont présents. Recherchez également les paquets installés avec APT et vérifiez que le pare-feu a été configuré correctement à l’aide de la commande sudo ufw status commande.

cloud-init enregistre également des informations importantes dans le fichier /var/log/cloud-init.log . Il contient des messages verbaux de tous les événements qui se sont produits pendant l’initialisation du nuage. Il contient les messages verbaux de tous les événements qui se sont produits pendant l’initialisation de cloud-init. Vous pouvez consulter ce fichier à l’aide de la commande cat comme suit :

 cat /var/log/cloud-init.log 

Automatiser la création de machines virtuelles avec cloud-init

cloud-init est un outil puissant qui vous aide à automatiser l’installation et la configuration de Linux. Vous pouvez l’utiliser dans le nuage et sur des serveurs sur site. Que vous souhaitiez simplement automatiser le déploiement de vos machines virtuelles ou que vous ayez besoin de déployer des serveurs Linux à grande échelle, cloud-init est un excellent choix.

Dans le même ordre d’idées, sécurisez toujours vos connexions SSH pour vos machines virtuelles basées sur le cloud afin d’éviter les failles de sécurité.

Leave your vote

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires

Log In

Forgot password?

Don't have an account? Register

Forgot password?

Enter your account data and we will send you a link to reset your password.

Your password reset link appears to be invalid or expired.

Log in

Privacy Policy

Add to Collection

No Collections

Here you'll find all collections you've created before.

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x