Como alterar o usuário padrão (ubuntu) via CloudInit na AWS

Como alterar o usuário padrão (ubuntu) via CloudInit na AWS

Estou usando o CloudInit para automatizar a inicialização das minhas instâncias na AWS. Segui a (escassa) documentação disponível emhttp://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/annotate/head%3A/doc/examples/cloud-config.txte exemplos em /usr/share/doc/cloud-init, mas ainda não descobri como alterar o nome de usuário padrão (ubuntu, id:1000).

Eu sei que posso criar um script para excluir manualmente o Ubuntu padrão e adicionar meu usuário, mas parece contra-intuitivo, visto que o CloudInit existe exatamente para automatizar a configuração inicial.

Alguma ideia?

Responder1

De acordo comesse, o CloudInit deve oferecer suporte a diretivas personalizadas para criar novos usuários, incluindo a substituição do usuário "ubuntu" padrão. Eu tentei seguindo exemplos, mas não consegui fazê-lo funcionar.

No entanto, como o CloudInit oferece suporte a scripts de dados do usuário e você pode fazer praticamente qualquer coisa em um script, prefiro usar comandos padrão em vez de tentar aprender algumas novas diretivas personalizadas.

Veja como altero o nome de usuário padrão de “ubuntu” em um script de dados do usuário. Este exemplo usa o novo nome de usuário "newuser" que você deve alterar de acordo com sua preferência:

#!/bin/bash -ex
user=newuser
usermod  -l $user ubuntu
groupmod -n $user ubuntu
usermod  -d /home/$user -m $user
mv /etc/sudoers.d/90-cloudimg-ubuntu /etc/sudoers.d/90-cloudimg-$user
perl -pi -e "s/ubuntu/$user/g;" /etc/sudoers.d/90-cloudimg-$user

Você pode adicionar esse script de dados do usuário para fazer qualquer outra inicialização e configuração necessária em suas instâncias.

Atualização: escrevi um artigo expandido descrevendo as etapas para usar um script de dados do usuário e como fazê-lo com CloudInit em versões recentes do Ubuntu:http://alestic.com/2014/01/ec2-change-username

Responder2

Você pode colocar isso em userdata:

#cloud-config
system_info:
  default_user:
    name: otherusername

informação relacionada