こんにちは。
ヒゲダルマです。
降って湧いた話なのですが、まとまった台数のPCにSQL Server 2008 R2をインストールしたいとの話を頂きました。(正確にはSQL Server 2008 R2 Express with Advanced Services)
まとまった台数ということなので、普段のサーバー構築案件では殆どやらないのですが、SQL Serverのインストールの自動化に着手してみました。具体的には構成ファイルを使用したインストールという方法になります。
と言うわけで、備忘録兼ねてブログ書いておきます。
大凡の流れは、以下の通りです。
- セットアップファイルの展開
- 構成ファイルの作成
- 構成ファイルを使用してインストールする為のバッチファイルの準備
早速、詳細を見ていきましょう。
1.セットアップファイルの展開
今回インストールするSQL Server 2008 R2 Express with Advanced ServicesはMicrosoftからダウンロード/入手出来ますが、ダウンロードした状態だとSQLEXPR_ADV.exeという単一ファイルです。手動インストールするなら、このファイルをダブルクリックしてウィザードに沿って進めればOKですが、それだと構成ファイルを作成出来ないので、下図の通り、コマンドプロンプトにてSQLEXPR_ADV.exe /Xで実行し、セットアップファイルを展開します。
2.構成ファイルの作成
構成ファイルの作成と言ってますが、ゼロから構成ファイルを書く必要はありません。
SQL Serverのセットアップを進める過程で構成ファイルが生成されますので、それをコピって少し手を加えれば自動インストール用の構成ファイルとなります。
通常のSQL Serverであれば、SETUP.EXEを実行しウィザードを進めるだけですが、ExpressはそのままではNGです。
下図の通り、コマンドプロンプトにて /UIMODE=Normal /ACTION=INSTALL というオプションを付けてSETUP.EXEを実行してやります。
後は通常のSQL Serverのセットアップウィザードとなりますので、適宜、設定/選択しつつ、SQL Serverのセットアップウィザードを進めます。
で、大事なのは↓ここです。
Configuration file pathと記載があるとおり、このファイルが構成ファイルとなります。と言うわけで、このファイルをエクスプローラーでコピーします。(先のSETUP.EXEと同じフォルダに入れておくと良いかと思います。)
コピーしたら、ウィザードはキャンセルで抜けて貰って構いません。
続けて、コピーしたConfigurationFile.iniをメモ帳で開き、修正して保存します。
修正点は以下2つ
・QUIETSIMPLE=”False” を “True”に変更
・UIMODE=”Normal” の行をコメントアウト(行頭に;付ける)
QUIETSIMPLEはFalseでも構わないのですが、自動とは言え進捗すら見えないと少し不安になるので、Trueにして進捗が見えるようにしておきます。
UIMODEの方はコメントアウトしないと自動インストールがこけます(エラーになります)。
3.構成ファイルを使用してインストールする為のバッチファイルの準備
前段で構成ファイルの作成も終わりましたので、後は自動インストールのバッチファイルを準備します。
ファイル名は_Install_SQL.batなど適当にどうぞ。
バッチファイルの内容は以下の通り。(詳細は下記参照)
CD “%~dp0”
.\SQLEXPR_ADV\SETUP.exe /SAPWD=hogehoge /IACCEPTSQLSERVERLICENSETERMS /Configurationfile=.\SQLEXPR_ADV\ConfigurationFile.ini
CD “%~dp0″はこのバッチファイルとSETUP.EXE類をCD-Rに焼く予定だったので、とりあえず、付けた。(要るか要らないかはケースバイケース。意味はググって下さい。)
/SAPWDは認証を混合モードにしている場合のSAのパスワードを記載。
/IACCEPTSQLSERVERLICENSETERMSは入れないと、怒られる(エラー)。
/Configurationfileは構成ファイルの場所をパスで指定。
これでSQL Server 2008 R2のインストールの自動化は完成です。バッチファイルをダブルクリックすれば、SQL Serverのインストールが構成ファイルの内容に従って自動で走るはずです。
ちなみに、SQL ServerのSP(サービスパック)やHotfix類の自動インストールは以下の通りです。(/Xでファイルを展開後)SETUP.exe /IACCEPTSQLSERVERLICENSETERMS /QUIETSIMPLE=true
なお、今回はSQL Server 2008 R2で紹介しましたが、より新しいSQL Serverでも大体同じ方法でインストールの自動化は実現出来ると思います。
以上、駄文散文ではございましたが、ご拝読ありがとうございました。
GFCのホームページはこちら!
SQL ServerなどIT環境構築に関連するGFCのサービスはこちらから。
お問い合わせフォームはこちらから。