【EC2】Sysprepの手順【Windows】

記事タイトルとURLをコピーする

こんにちは。3月より技術二課となった伊藤Kです。

最近、こんなインタビューに答えました。 オンプレのインフラエンジニアだった私が、クラウド専業の会社に転職した理由。

タイアップを狙ったわけではないですが、しばらく、 「オンプレのインフラエンジニアだった私が、EC2のWindowsでひっかかったポイント」 がテーマとなる記事を書いていく予定です。 本日は第一弾「Sysprep」について。

EC2のSysprep

え、Sysprepでしょ。Windowsメインのエンジニアなら常識だよね。 「C:\Windows\System32\sysprep」フォルダの「Sysprep.exe」を実行するよね。 オプションは、「/generalize、/shutdown、/oobe」をつけとけばいいでしょ。 そんなふうに考えていた時期が俺にもありました・・・。

EC2のSysprepは専用のサービス(サービスと言いつつツールに近い)「EC2Config」もしくは「EC2Launch」を使用します。 Windows Server 2012 R2 以前のバージョンのOSは「EC2Config」、 Windows Server 2016 以降のバージョンのOSは「EC2Launch」となります。 この記事では、両方の手順を見ていきます。

「EC2Config」によるSysprep

まずは、「EC2Config」によるSysprepです。図のOSはWindows Server 2012 R2です。

OSのスタートメニューのアプリケーション一覧より、「EC2ConfigService Settings」を選択します。 「Image」タブを選択します。 Sysprep後に、「Administrator」ユーザーに割り当たるパスワードのオプションを選択します。 ・Random:ランダムなパスワードが割り当てられ、マネジメントコンソールより確認できます。 ・Specify:右の入力エリアで入力したパスワードが割り当たります。 ・Keep Existing:既に設定されているパスワードをそのまま割り当てます。(が、直後に記載されている「Note」に書かれているように、「Windows Server 2008」以降のOSでは効果がなく、既に設定されているパスワードが消されてしまうため、ほぼ使えません)

というわけで、「Specify」を選択し、右の入力エリアへ新しいパスワードを入力します。

[Shutdown with Sysprep] を選択します。

確認のメッセージが出るので、 [はい] をクリックします。

Sysprepが開始され、自動的にOSシャットダウンします。ここまでくると、オンプレエンジニアにも見慣れたダイアログです。

「EC2Launch」によるSysprep

次に、「EC2Launch」によるSysprepです。図のOSはWindows Server 2016です。

OSのスタートメニューのアプリケーション一覧より、「Ec2LaunchSettings」を選択します。 今度は「General」タブしかありませんね。 設定する項目は「EC2Config」と同じです。「Administrator Password」欄で、 Sysprep後、「Administrator」ユーザーに割り当たるパスワードのオプションを選択します。 ・Random:ランダムなパスワードが割り当てられ、マネジメントコンソールより確認できます。 ・Specify:右の入力エリアで入力したパスワードが割り当たります。 ・Do Nothing:unattend.xml ファイルでパスワードを指定します。unattend.xml でパスワードを指定しない場合、管理者アカウントは無効になります。

図では、「Do Nothing」を選択していますが、別途unattend.xmlをつかう用途がない場合は、SpecifyもしくはRandomが分かりやすいです。 画面一番下の、[Shutdown with Sysprep] を選択します。

Sysprep用Scriptの場所と応答ファイルの場所が表示されます。[Yes]をクリックします。 余談ですが、「EC2Launch」によるSysprepは内部的にPowerShellスクリプトが実行されることで実現されるのですが、それが上記ダイアログから見て取れます。また、応答ファイルを編集して、カスタマイズされたSysprepを実行する場合は、上記パスより対象ファイルが分かります。

参考までに、Unattend.xmlのパスはこちら C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep\Unattend.xml

同じく見慣れたダイアログが表示されます。Sysprepが開始されており、自動的にOSシャットダウンします。

その後(共通)

「EC2Config」、「EC2Launch」どちらの手順も実行後はインスタンスが「Sysprep済み、シャットダウン」の状態となるので、 あとは、一般的な使い方としてはシャットダウンされたインスタンスのAMIをそのまま取って、そこからローンチすることで、Sysprep後の状態のマシンを起動して使用します。

おわりに

密かに「令和」投稿第1号を狙ってましたが、さすがはサーバーワークス、しれっと先をこされました。「令和」投稿第3号ぐらいになりそうです。