AWS上のEC2 Windowsインスタンスでは単純にAMI化して
そのAMIからインスタンスを作成するとsysprepはされないし、パスワードはAWS管理コンソール上の「Windowsパスワードの取得」から取得できなくなります。
※ AMI作成元のWindowsと同じパスワードになります。
バックアップのリストア用途なら良いですが、複製やAMI配布を考えた場合困ります。
AWS管理コンソールからキーペアを使用し「Windowパスワードの取得」が出来るようにAMI化するのはどうしたらよいでしょうか。
レジュメ
キーペアを使用し「Windowパスワードの取得」が出来るようにAMI化する方法
AMI化する前に以下の手順を踏みます。
以下、Windows Server 2012 R2で説明します。
1、「EC2ConfigService Settings」
すべてのプログラムから「EC2ConfigService Settings」を実行します。
2、aministrator password random
「image」タブを開き、Administrator Passwordで「Random」を選択し
「Shutdown with Sysprep」ボタンを押します。
すると、勝手にWindowsがシャットダウンします。
3、AMIを取得する
Windows EC2がStopしたら該当インスタンスを右クリックし「イメージ」-「イメージの作成」をしAMIを作成します。
これでこのAMIから作成されたWindowsインスタンスは初回起動時にSysprepされadministratorパスワードもランダムに初期化されます。
AMIを作成元のインスタンスもパスワードが初期化されSysprepされる
注意しなければならない点は、AMIを作成元のインスタンスも
- パスワードがリセットされ
- Sysprepされます
Sysprepされると、Windowsが初期化され、コンピュータ名も変更されます。
上記は、クライアントからEC2インスタンスにリモートデスクトップ接続しに行った時に表示されるWindowsのコンピュータ名です。
気づきにくいですが、AMIを取得前とは変更されています(Windows初期化されている)
「Windowパスワードの取得」出来る仕組みは?正体は?
ここからは参考情報です。
sysprepは、sysprepを実行しシャットダウンするのですが
Administrator PasswordをRandomパスワードにしているのは上記config.xmlの設定です。
C:\Program Files\Amazon\Ec2ConfigService\Settings\config.xml
このconfig.xmlの「Ec2SetPassword」フィールドをEnableに変更するとAdministratorのパスワードが初期化されAWS管理コンソールから「Windowパスワードの取得」が出来るようになります。
この設定は次回再起動から有効になります。