Verwenden von cloud-init zum Hinzufügen von Benutzern zu einer Linux-VM in Azure

Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen

In diesem Artikel wird gezeigt, wie Sie cloud-init zum Hinzufügen eines Benutzers zu einem virtuellen Computer (VM) oder einer VM-Skalierungsgruppe (VMSS) während der Bereitstellung in Azure verwenden. Dieses cloud-init-Skript wird beim erstmaligen Starten ausgeführt, nachdem die Ressourcen von Azure bereitgestellt wurden. Weitere Informationen zur nativen Funktion von cloud-init in Azure und zu den unterstützten Linux-Distributionen finden Sie unter Übersicht über cloud-init.

Hinzufügen eines Benutzers zu einer VM mit cloud-init

Eine der ersten Aufgaben auf jeder neuen Linux-VM ist das Hinzufügen eines weiteren Benutzers für sich selbst, um die Verwendung von root zu vermeiden. SSH-Schlüssel stellen eine bewährte Methode dar, um Sicherheit und Benutzerfreundlichkeit bereitzustellen. Schlüssel werden mit diesem cloud-init-Skript zur Datei ~/.ssh/authorized_keys hinzugefügt.

Um einer Linux-VM einen Benutzer hinzuzufügen, erstellen Sie in der aktuellen Shell eine Datei namens cloud_init_add_user.txt, und fügen Sie die folgende Konfiguration ein. Erstellen Sie für dieses Beispiel die Datei in der Cloud Shell, nicht auf dem lokalen Computer. Dazu können Sie einen beliebigen Editor verwenden. Stellen Sie sicher, dass die gesamte cloud-init-Datei ordnungsgemäß kopiert wird, insbesondere die erste Zeile. Sie müssen Ihren eigenen öffentlichen Schlüssel (z.B. den Inhalt von ~/.ssh/id_rsa.pub) als Wert von ssh-authorized-keys: angeben (der Inhalt wurde zur Vereinfachung des Beispiels gekürzt).

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

Hinweis

Die #cloud-config-Datei enthält den Parameter - default. Dadurch wird der Benutzer an den vorhandenen Administrator angefügt, der während der Bereitstellung erstellt wurde. Wenn Sie einen Benutzer ohne den - default-Parameter erstellen, wird der automatisch generierte Administratorbenutzer, der von der Azure-Plattform erstellt wurde, überschrieben.

Vor der Bereitstellung dieses Images müssen Sie mit dem Befehl az group create eine Ressourcengruppe erstellen. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden. Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus.

az group create --name myResourceGroup --location eastus

Erstellen Sie nun mit dem Befehl az vm create eine VM, und geben Sie mit --custom-data cloud_init_add_user.txt die cloud-init-Datei an, wie im Folgenden gezeigt wird:

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

Hinweis

Ersetzen Sie die Werte myResourceGroup, vmName und imageCIURN entsprechend. Stellen Sie sicher, dass ein Image mit Cloud-init ausgewählt ist.

Stellen Sie eine SSH-Verbindung mit der öffentlichen IP-Adresse Ihrer VM her, die in der Ausgabe über den vorherigen Befehl gezeigt wird. Geben Sie Ihren eigenen user und Ihre eigene publicIpAddress wie folgt ein:

ssh <user>@<publicIpAddress>

Um zu bestätigen, dass Ihr Benutzer zur VM und den angegebenen Gruppen hinzugefügt wurde, zeigen Sie den Inhalt der Datei /etc/group wie folgt an:

sudo cat /etc/group

Die folgende Beispielausgabe zeigt, dass der Benutzer aus der Datei cloud_init_add_user.txt zur VM und der entsprechenden Gruppe hinzugefügt wurde:

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

Nächste Schritte

Weitere cloud-init-Beispiele für Änderungen an der Konfiguration finden Sie in den folgenden Themen: