Назад | Перейти на главную страницу

Как изменить пользователя по умолчанию (ubuntu) через CloudInit на AWS

Я использую 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