Utiliser cloud-init pour ajouter un utilisateur sur une machine virtuelle Linux sur Azure

S’applique à : ✔️ Machines virtuelles Linux ✔️ Groupes identiques flexibles

Cet article montre comment utiliser cloud-init pour ajouter un utilisateur sur une machine virtuelle Linux ou un groupe de machines virtuelles identiques au moment de l’approvisionnement dans Azure. Ce script cloud-init s’exécute au premier démarrage une fois que les ressources ont été approvisionnées par Azure. Pour plus d’informations sur le fonctionnement de cloud-init en mode natif dans Azure et sur les versions de Linux prises en charge, consultez Présentation de cloud-init.

Ajouter un utilisateur à une machine virtuelle avec cloud-init

L’une des premières tâches à effectuer sur une nouvelle machine virtuelle Linux consiste à ajouter un utilisateur supplémentaire pour vous-même afin d’éviter l’utilisation de root. Les clés SSH sont un bon réflexe de sécurité et de facilité d’utilisation. Les clés sont ajoutées au fichier ~/.ssh/authorized_keys avec ce script cloud-init.

Pour ajouter un utilisateur à une machine virtuelle Linux, créez dans l’interpréteur de commandes actuel un fichier nommé cloud_init_add_user.txt et collez-y la configuration suivante. Pour cet exemple, créez le fichier dans Cloud Shell et non sur votre ordinateur local. Vous pouvez utiliser l’éditeur de votre choix. Vérifiez que l’intégralité du fichier cloud-init est copiée, en particulier la première ligne. Vous devez fournir votre propre clé publique (comme le contenu de ~/.ssh/id_rsa.pub) pour la valeur de ssh-authorized-keys:, elle a été raccourcie ici pour simplifier l’exemple.

#cloud-config
users:
  - default
  - name: myadminuser
    groups: sudo
    shell: /bin/bash
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    ssh-authorized-keys:
      - ssh-rsa AAAAB3<snip>

Notes

Le fichier #cloud-config inclut le paramètre - default. Cela permet d’ajouter l’utilisateur à l’utilisateur administrateur existant créé lors de l’approvisionnement. Si vous créez un utilisateur sans le paramètre - default, l’utilisateur administrateur généré automatiquement créé par la plateforme Azure serait remplacé.

Avant de déployer cette image, vous devez créer un groupe de ressources avec la commande az group create. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement eastus.

az group create --name myResourceGroup --location eastus

Maintenant, créez une machine virtuelle avec az vm create et spécifiez le fichier cloud-init avec --custom-data cloud_init_add_user.txt comme suit :

az vm create \
  --resource-group myResourceGroup \
  --name vmName \
  --image imageCIURN \
  --custom-data cloud_init_add_user.txt \
  --generate-ssh-keys

Notes

Remplacez en conséquence les valeurs myResourceGroup, vmName et imageCIURN. Assurez-vous de choisir une image avec Cloud-init.

Établissez une connexion SSH à l’adresse IP publique de votre machine virtuelle indiquée dans la sortie de la commande précédente. Entrez vos propres utilisateur et publicIpAddress comme suit :

ssh <user>@<publicIpAddress>

Pour confirmer que l’utilisateur a été ajouté à la machine virtuelle et aux groupes spécifiés, affichez le contenu du fichier /etc/group comme suit :

sudo cat /etc/group

L’exemple de sortie suivant montre que l’utilisateur indiqué dans le fichier cloud_init_add_user.txt a été ajouté à la machine virtuelle et au groupe approprié :

root:x:0:
<snip />
sudo:x:27:myadminuser
<snip />
myadminuser:x:1000:

Étapes suivantes

Pour obtenir des exemples cloud-init supplémentaires de modifications de configuration, consultez les rubriques suivantes :