Usar cloud-init para adicionar um usuário a uma VM Linux no Azure
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
Este artigo mostra como usar o cloud-init para adicionar um usuário em uma máquina virtual (VM) ou conjuntos de dimensionamento de máquina virtual (VMSS) no momento do provisionamento no Azure. Esse script de inicialização na nuvem é executado na primeira inicialização depois que os recursos são provisionados pelo Azure. Para obter mais informações sobre como o cloud-init funciona nativamente no Azure e as distribuições Linux suportadas, consulte visão geral do cloud-init.
Adicionar um usuário a uma VM com cloud-init
Uma das primeiras tarefas em qualquer nova VM Linux é adicionar um usuário adicional para si mesmo para evitar o uso de root. As chaves SSH são as melhores práticas para segurança e usabilidade. As chaves são adicionadas ao arquivo ~/.ssh/authorized_keys com este script cloud-init.
Para adicionar um usuário a uma VM Linux, crie um arquivo em seu shell atual chamado cloud_init_add_user.txt e cole a seguinte configuração. Para este exemplo, crie o arquivo no Cloud Shell e não em sua máquina local. Pode utilizar qualquer editor que desejar. Certifique-se de que todo o arquivo cloud-init é copiado corretamente, especialmente a primeira linha. Você precisa fornecer sua própria chave pública (como o conteúdo de ~/.ssh/id_rsa.pub) para o valor de ssh-authorized-keys:
- ela foi encurtada 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 arquivo #cloud-config inclui o - default
parâmetro incluído. Isso acrescentará o usuário ao usuário administrador existente criado durante o provisionamento. Se você criar um usuário sem o - default
parâmetro - o usuário administrador gerado automaticamente criado pela plataforma Azure será substituído.
Antes de implantar esta imagem, você precisa 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 arquivo cloud-init da --custom-data cloud_init_add_user.txt
seguinte maneira:
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 de acordo. Certifique-se de que uma imagem com Cloud-init foi escolhida.
SSH para o endereço IP público da sua VM mostrado na saída do comando anterior. Digite seu próprio usuário e publicIpAddress da seguinte maneira:
ssh <user>@<publicIpAddress>
Para confirmar que seu usuário foi adicionado à VM e aos grupos especificados, exiba o conteúdo do arquivo /etc/group da seguinte maneira:
sudo cat /etc/group
A saída de exemplo a seguir mostra o usuário do arquivo cloud_init_add_user.txt foi adicionado à VM e ao grupo apropriado:
root:x:0:
<snip />
sudo:x:27:myadminuser
<snip />
myadminuser:x:1000:
Próximos passos
Para obter exemplos adicionais de alterações de configuração na nuvem, consulte o seguinte: