Usare cloud-init per aggiungere un utente a una VM Linux in Azure
Si applica a: ✔️ macchine virtuali di Linux ✔️ set di scalabilità flessibili
Questo articolo illustra come usare cloud-init per aggiungere un utente in una macchina virtuale (VM) o un set di scalabilità di macchine virtuali in fase di provisioning in Azure. Questo script cloud-init viene eseguito al primo avvio dopo il provisioning delle risorse da parte di Azure. Per altre informazioni sul funzionamento di cloud-init in modo nativo in Azure e sulle distribuzioni Linux supportate, vedere la panoramica di cloud-init.
Aggiungere un utente a una macchina virtuale con cloud init
Una delle prime attività eseguite in qualsiasi nuova VM Linux è l'aggiunta di un altro utente per evitare di usare root. Le chiavi SSH sono la procedura consigliata per la sicurezza e l'usabilità. Le chiavi vengono aggiunte al file ~/.ssh/authorized_keys con questo script cloud-init.
Per aggiungere un utente a una VM Linux, creare un file denominato cloud_init_add_user.txt nella shell corrente e incollare la configurazione seguente. Per questo esempio, creare il file in Cloud Shell anziché nel computer locale. È possibile usare qualsiasi editor. Assicurarsi che l'intero file cloud-init venga copiato correttamente, in particolare la prima riga. Come valore di ssh-authorized-keys:
è necessario specificare la propria chiave pubblica (ad esempio il contenuto di ~/.ssh/id_rsa.pub). Qui è stato abbreviato per semplificare l'esempio.
#cloud-config
users:
- default
- name: myadminuser
groups: sudo
shell: /bin/bash
sudo: ['ALL=(ALL) NOPASSWD:ALL']
ssh-authorized-keys:
- ssh-rsa AAAAB3<snip>
Nota
Il file #cloud-config include il parametro - default
. In questo modo, l'utente verrà aggiunto all'utente amministratore esistente creato durante il provisioning. Se si crea un utente senza il parametro - default
, l'utente amministratore generato automaticamente dalla piattaforma Azure verrà sovrascritto.
Prima di distribuire l'immagine, è necessario creare un gruppo di risorse con il comando az group create. Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.
az group create --name myResourceGroup --location eastus
Creare ora una VM con az vm create e specificare il file cloud-init con --custom-data cloud_init_add_user.txt
come segue:
az vm create \
--resource-group myResourceGroup \
--name vmName \
--image imageCIURN \
--custom-data cloud_init_add_user.txt \
--generate-ssh-keys
Nota
Sostituire i valori myResourceGroup, vmNamee imageCIURN di conseguenza. Assicurarsi che sia selezionata un'immagine con Cloud-init.
Stabilire una connessione SSH all'indirizzo IP pubblico della VM visualizzata nell'output del comando precedente. Immettere il proprio utente e publicIpAddress come indicato di seguito:
ssh <user>@<publicIpAddress>
Per verificare che l'utente sia stato aggiunto alla VM e ai gruppi specificati, visualizzare il contenuto del file /etc/group come segue:
sudo cat /etc/group
L'output di esempio seguente illustra che l'utente dal file cloud_init_add_user.txt è stato aggiunto alla VM e al gruppo appropriato:
root:x:0:
<snip />
sudo:x:27:myadminuser
<snip />
myadminuser:x:1000:
Passaggi successivi
Per altri esempi cloud-init di modifiche di configurazione, vedere i documenti seguenti: