Windowsサーバー複製後にIISが正常に動作しない問題を解決するまでのステップ
はじめに
Windowsサーバーの複製は、運用環境の拡張やデータセンター移行などで頻繁に行われます。
しかし、複製後に既存のアプリケーションが正常に動作しなくなる場合があります。
今回は、複製後のサーバーでIISが動作しなくなるという重大な問題に直面しました。
本ブログでは、その原因と解決までの流れを記録します。
SysprepによるSID重複回避とその影響
Sysprepは、Windowsサーバーを複製する際に必須のプロセスです。
特にActive Directry環境化では、SIDが重複したサーバーは同一マシンとみなされる為、SysprepによるSIDの初期化は必須です。
しかし今回はSysprepの実行により、複製後のサーバーでIISが正常に動作しない事象が発生しました。
複製後のIIS動作不良の原因調査
はじめに、複製前のサーバーで設定ファイルをバックアップし、複製後にリストアするためにBackup-WebConfiguration、Restore-WebConfigurationというPowershellコマンドを試しましたが、問題は解決しませんでした。
- Backup-WebConfiguration
- IISの設定ファイルをバックアップするコマンド
- 公式ドキュメント
- Restore-WebConfiguration
- IISの設定ファイルをバックアップからリストアするコマンド
- 公式ドキュメント
詳細な原因を調査した結果、設定ファイルに暗号化されたパスワードが復号化できなくなり、パスワード認証エラーが発生していたことが分かりました。
暗号化キーの課題と代替策の検討
最初に、複製後のサーバーに複製元から暗号化キーを渡す試みを行いましたが、マシン固有のキーだったためSysprep実行後には使用できず、この方法でも解消しませんでした。
最終手段として複製後のサーバーでパスワードを再設定する方法も検討しましたが、パスワード変更時のメンテナンスや管理の複雑化を考慮し、できる限り避けたいと考えました。
最終的な解決策
問題を解決するため、Export-IISConfiguration、Enable-IISSharedConfig、Disable-IISSharedConfigコマンドを活用しました。
- Export-IISConfiguration
- 設定ファイルを任意の場所にエクスポートすると共に、全サーバーで使用可能な暗号化キーを発行し、再暗号化を行うコマンド
- 公式ドキュメント
- Enable-IISSharedConfig
- 複製先のサーバーで共有設定機能を有効化し、エクスポートした設定ファイルを参照するコマンド
- 公式ドキュメント
- Disable-IISSharedConfig
- オプション付きで実行することで、設定ファイルをローカルにコピーしながら共有設定機能を無効化するコマンド
- 公式ドキュメント
これにより、複製後も正常にIISが動作するようになりました。
さいごに
今回のケースでは、Windowsサーバーの複製後にIISが正常に動作しなくなる問題が発生しましたが、原因を特定し、適切な手順を踏むことで解決に至りました。
この問題の主な要因は、Sysprep実行による暗号化キーのリセットが、IISの設定ファイルに影響を及ぼしたことです。
最終的には、Pawershellコマンドを駆使することで解消しました。
サーバー複製時には、事前に潜在的な問題を予測し、適切な検証と準備を行うことが重要です。
同様の課題に直面した際の参考になれば幸いです。