Utilizar o cloud-init para adicionar um utilizador a uma VM do Linux no Azure

Aplica-se a: ✔️ Conjuntos de dimensionamento flexíveis de VMs ✔️ do Linux

Este artigo mostra-lhe como utilizar o cloud-init para adicionar um utilizador numa máquina virtual (VM) ou em conjuntos de dimensionamento de máquinas virtuais (VMSS) no tempo de aprovisionamento no Azure. Este script cloud-init é executado no primeiro arranque depois de os recursos terem sido aprovisionados pelo Azure. Para obter mais informações sobre como o cloud-init funciona nativamente no Azure e as distribuições do Linux suportadas, veja cloud-init overview (Descrição geral do cloud-init).

Adicionar um utilizador a uma VM com cloud-init

Uma das primeiras tarefas em qualquer nova VM do Linux é adicionar um utilizador adicional para si próprio para evitar a utilização de raiz. As chaves SSH são a melhor prática para segurança e utilização. As chaves são adicionadas ao ficheiro ~/.ssh/authorized_keys com este script cloud-init.

Para adicionar um utilizador a uma VM do Linux, crie um ficheiro na sua shell atual com o nome cloud_init_add_user.txt e cole a seguinte configuração. Neste exemplo, crie o ficheiro no Cloud Shell não no computador local. Pode utilizar qualquer editor que desejar. Certifique-se de que todo o ficheiro cloud-init é copiado corretamente, especialmente a primeira linha. Tem de fornecer a sua própria chave pública (como o conteúdo de ~/.ssh/id_rsa.pub) para o valor de ssh-authorized-keys: - foi encurtado aqui para simplificar o exemplo.

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

Nota

O ficheiro de configuração de #cloud inclui o - default parâmetro incluído. Isto acrescentará o utilizador ao utilizador administrador existente criado durante o aprovisionamento. Se criar um utilizador sem o - default parâmetro , o utilizador administrador gerado automaticamente criado pela plataforma do Azure será substituído.

Antes de implementar esta imagem, tem de criar um grupo de recursos com o comando az group create . Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos. O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.

az group create --name myResourceGroup --location eastus

Agora, crie uma VM com az vm create e especifique o ficheiro cloud-init com --custom-data cloud_init_add_user.txt o seguinte:

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

Nota

Substitua os valores myResourceGroup, vmName e imageCIURN em conformidade. Certifique-se de que é escolhida uma imagem com o Cloud-init.

SSH para o endereço IP público da VM apresentado na saída do comando anterior. Introduza o seu próprio utilizador e publicIpAddress da seguinte forma:

ssh <user>@<publicIpAddress>

Para confirmar que o utilizador foi adicionado à VM e aos grupos especificados, veja o conteúdo do ficheiro /etc/group da seguinte forma:

sudo cat /etc/group

O resultado de exemplo seguinte mostra que o utilizador do ficheiro cloud_init_add_user.txt foi adicionado à VM e ao grupo adequado:

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

Passos seguintes

Para obter exemplos adicionais de alterações de configuração na cloud, veja o seguinte: