Я использую CloudInit для автоматизации запуска моих экземпляров на AWS. Я следил за (скудной) документацией, доступной на http://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/annotate/head%3A/doc/examples/cloud-config.txt и примеры на /usr/share/doc/cloud-init
, но до сих пор не понял, как изменить имя пользователя по умолчанию (ubuntu, id: 1000).
Я знаю, что могу создать сценарий, чтобы вручную удалить ubuntu по умолчанию и добавить своего пользователя, но это кажется интуитивно понятным, учитывая, что CloudInit существует именно для автоматизации начальной настройки.
Любые идеи?
В соответствии с этотCloudInit должен поддерживать настраиваемые директивы для создания новых пользователей, включая переопределение пользователя по умолчанию «ubuntu». Я пробовал это, следуя примерам, но не смог заставить его работать.
Однако, поскольку CloudInit поддерживает сценарии пользовательских данных, и вы можете делать в сценарии практически все, что угодно, я предпочитаю использовать стандартные команды, а не пытаться изучить новые настраиваемые директивы.
Вот как я меняю имя пользователя по умолчанию с «ubuntu» в скрипте пользовательских данных. В этом примере используется новое имя пользователя newuser, которое вы должны изменить по своему усмотрению:
#!/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
Вы можете добавить к этому сценарию пользовательских данных любую другую инициализацию и настройку, необходимую для ваших экземпляров.
Обновление: я написал расширенную статью, описывающую шаги для использования как сценария пользовательских данных, так и того, как это сделать с CloudInit в последних версиях Ubuntu: http://alestic.com/2014/01/ec2-change-username
Вы можете поместить это в пользовательские данные:
#cloud-config
system_info:
default_user:
name: otherusername