定型処理は自動化しましょう!ということで、JenkinsからMSDeployを使ってASP.netプログラムを、Windows 2012 Server上のIISにデプロイできるようにしてみました。
Windows Server 2012 (デプロイ先)の設定
◯前提条件
- サーバーマネージャーからIISがインストールされている状態
◯Web Platform Installer から、Web配置ツールをインストール
製品 → すべて → Web配置ツールを探し出して、追加をクリック
インストールをクリックすると、『これでインストールするけど、いいかい?』って聞かれるので、同意しましょう。
インストールが終了するまで待ちます。
他のもいろいろインストールされましたが、Web配置ツールが入ったので良しとしましょう。
◯IISで展開の設定
IIS上のDefault Web Site を右クリックし、展開→Web配置による発行の有効化 をクリックします。
Web配置による発行の有効化の画面が出てきます。
ほとんどは初期値で良いのですが、『発行の設定ファイルの保存先を指定します』の項目だけは初期値ではうまく行かなかったので、C:¥inetpub¥wwwroot配下に設定します。
あとは、設定をクリックして、設定を反映しておきます。
Jenkins側の設定(Windows 7 Pro)
◯前提条件
- .net Framework 4.0がインストールされていること
- MSBuild(Jenkins Plugin)がインストールされていること
◯MSBuildプラグインの設定
まずは、.net Frameworkのバージョンを明示的に指定します。
Jenkinsのトップページから、『Jenkinsの管理』→『システムの設定』から、MSBuildの項目を下記のように設定します。
Name:任意の名称(バージョンがわかりやすければ、どんな名称でも問題ないと思います)
Path to MSBuild : 指定バージョンのMSBuild.exeへの絶対パス
Default Parameters : 今回は使用しません。
◯ジョブを作成する
フリースタイル・プロジェクトのビルド を選択して、新規ジョブを作成します。
◯MSBuildの設定
『ビルド手順の追加』から、『Buil a Visual Studio project or solution using MSBuild』を選択し、手順を追加します。
MSBuild Version : 『MSBuildプラグインの設定』で作成した、バージョン情報
MSBuild Build File : ジョブディレクトリ配下のworkspaceディレクトリ配下からの、プロジェクトorソリューションファイルへの相対パス
Command Line Arguments : ビルドはリリースで、ターゲットはPackageに指定
◯MSDeployコマンドを設定する
『ビルド手順の追加』から、『Windowsバッチコマンドの実行』を選択し、手順を追加します。
設定するバッチコマンドの内容は以下のようになります。(実際は一行で記述します。)
"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"
-verb:sync
-source:package='[ビルドパッケージのパス]'
-dest:auto,wmsvc=[サーバアドレス],includeAcls='False',username=[サーバユーザ],password=[ユーザパスワード]
-setParam:"IIS Web Application Name"="[デプロイ場所]"
-allowUntrusted=true
以上で、デプロイサーバ側、Jenkinsジョブの設定が完了です。
これでVCSのポーリングを組み合わせて、コミット/プッシュに応じてビルド〜デプロイまでを自動化することができます。
本番環境へのデプロイなんかは、間にテストをかませたり、ワークフロー的な動きが出てきたりしますが、開発環境レベルではこのレベルで問題かなぁと思います。
0 件のコメント:
コメントを投稿