如何通过AWS上的CloudInit更改默认用户(ubuntu)

我正在使用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)。

我知道我可以创build一个脚本来手动删除默认的ubuntu并添加我的用户,但似乎反直觉鉴于CloudInit存在完全自动化的初始设置。

有任何想法吗?

据此,CloudInit应支持自定义指令来创build新用户,包括覆盖默认的“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 

您可以添加到此用户数据脚本中,以执行实例所需的任何其他初始化和configuration。

更新:我已经写了一篇扩展的文章,描述了使用用户数据脚本的步骤,以及如何在最新版本的Ubuntu上使用CloudInit执行此操作: http ://alestic.com/2014/01/ec2-change-username