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 cloud-init overview (Omówienie pakietu 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życia 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 usłudze Cloud Shell, a nie na komputerze lokalnym. Możesz użyć dowolnego edytora. Upewnij się, że cały plik cloud-init został poprawnie skopiowany, zwłaszcza w pierwszym wierszu. Musisz podać własny klucz publiczny (na przykład zawartość pliku ~/.ssh/id_rsa.pub) dla wartości ssh-authorized-keys:
— została ona 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 administracyjny 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. W poniższym przykładzie tworzona jest grupa 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
Zastąp odpowiednio wartości myResourceGroup, vmName i imageCIURN . Upewnij się, że wybrano obraz z elementem Cloud-init.
Za pomocą protokołu SSH na publiczny adres IP maszyny wirtualnej pokazany 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:
- Dodawanie dodatkowego użytkownika systemu Linux do maszyny wirtualnej
- Uruchamianie menedżera pakietów w celu zaktualizowania istniejących pakietów podczas pierwszego rozruchu
- Zmienianie nazwy hosta lokalnego maszyny wirtualnej
- Instalowanie pakietu aplikacji, aktualizowanie plików konfiguracji i wstrzykiwanie kluczy