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

Как изменить пользователя по умолчанию (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 существует именно для автоматизации первоначальной настройки.

Есть идеи?

решение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

Связанный контент