Dodawanie użytkownika do maszyny wirtualnej z systemem Linux na platformie Azure przy użyciu pakietu cloud-init

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️

W tym artykule pokazano, jak za pomocą pakietu cloud-init dodać użytkownika na maszynie wirtualnej lub zestawach skalowania maszyn wirtualnych (VMSS) w czasie aprowizacji na platformie Azure. Ten skrypt cloud-init jest uruchamiany podczas pierwszego rozruchu po aprowizacji zasobów przez platformę Azure. Aby uzyskać więcej informacji na temat natywnego działania pakietu cloud-init na platformie Azure i obsługiwanych dystrybucji systemu Linux, zobacz omówienie cloud-init.

Dodawanie użytkownika do maszyny wirtualnej przy użyciu pakietu cloud-init

Jednym z pierwszych zadań na każdej nowej maszynie wirtualnej z systemem Linux jest dodanie dodatkowego użytkownika, aby uniknąć używania katalogu głównego. Klucze SSH są najlepszym rozwiązaniem w zakresie zabezpieczeń i użyteczności. Klucze są dodawane do pliku ~/.ssh/authorized_keys za pomocą tego skryptu cloud-init.

Aby dodać użytkownika do maszyny wirtualnej z systemem Linux, utwórz plik w bieżącej powłoce o nazwie cloud_init_add_user.txt i wklej następującą konfigurację. W tym przykładzie utwórz plik w Cloud Shell nie na komputerze lokalnym. Możesz użyć dowolnego edytora. Upewnij się, że cały plik cloud-init został poprawnie skopiowany, zwłaszcza pierwszy wiersz. Musisz podać własny klucz publiczny (na przykład zawartość pliku ~/.ssh/id_rsa.pub) dla wartości — ssh-authorized-keys: została skrócona tutaj, aby uprościć ten przykład.

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

Uwaga

Plik #cloud-config zawiera - default dołączony parametr. Spowoduje to dołączenie użytkownika do istniejącego użytkownika administratora utworzonego podczas aprowizacji. Jeśli utworzysz użytkownika bez parametru - default — automatycznie wygenerowany użytkownik administratora utworzony przez platformę Azure zostanie zastąpiony.

Przed wdrożeniem tego obrazu należy utworzyć grupę zasobów za pomocą polecenia az group create . Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi. Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji eastus.

az group create --name myResourceGroup --location eastus

Teraz utwórz maszynę wirtualną za pomocą polecenia az vm create i określ plik cloud-init w --custom-data cloud_init_add_user.txt następujący sposób:

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

Uwaga

Odpowiednio zastąp wartości myResourceGroup, vmName i imageCIURN . Upewnij się, że wybrano obraz z usługą Cloud-init.

SSH do publicznego adresu IP maszyny wirtualnej pokazanej w danych wyjściowych z poprzedniego polecenia. Wprowadź własnego użytkownika i publicIpAddress w następujący sposób:

ssh <user>@<publicIpAddress>

Aby potwierdzić, że użytkownik został dodany do maszyny wirtualnej i określonych grup, wyświetl zawartość pliku /etc/group w następujący sposób:

sudo cat /etc/group

Następujące przykładowe dane wyjściowe pokazują, że użytkownik z pliku cloud_init_add_user.txt został dodany do maszyny wirtualnej i odpowiedniej grupy:

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

Następne kroki

Aby uzyskać dodatkowe przykłady zmian konfiguracji cloud-init, zobacz następujące kwestie: