%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%20CloudInit%20%D0%BD%D0%B0%20AWS.png)
Я использую 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 существует именно для автоматизации первоначальной настройки.
Есть идеи?
решение1
В соответствии сэтот, CloudInit должен поддерживать пользовательские директивы для создания новых пользователей, включая переопределение пользователя по умолчанию "ubuntu". Я пробовал это, следуя примерам, но не смог заставить это работать.
Однако, поскольку CloudInit поддерживает скрипты пользовательских данных, а в скрипте можно делать практически все, я предпочитаю использовать стандартные команды, а не пытаться изучать какие-то новые пользовательские директивы.
Вот как я меняю имя пользователя по умолчанию с "ubuntu" в скрипте user-data. В этом примере используется новое имя пользователя "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
решение2
Вы можете поместить это в userdata:
#cloud-config
system_info:
default_user:
name: otherusername