AWS の CloudInit 経由でデフォルト ユーザー (ubuntu) を変更する方法

AWS の CloudInit 経由でデフォルト ユーザー (ubuntu) を変更する方法

私はAWS上のインスタンスの起動を自動化するためにCloudInitを使用しています。私は以下の(少ない)ドキュメントに従いました。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」から変更する方法を次に示します。この例では新しいユーザー名「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

このユーザーデータ スクリプトを追加して、インスタンスに必要なその他の初期化と構成を行うことができます。

更新: ユーザー データ スクリプトの使用手順と、Ubuntu の最新バージョンで CloudInit を使用してそれを実行する方法を説明した拡張記事を書きました。http://alestic.com/2014/01/ec2-ユーザー名の変更

答え2

これをユーザーデータに記述できます:

#cloud-config
system_info:
  default_user:
    name: otherusername

関連情報