2013年9月10日火曜日

MSDeployを使用して、JenkinsからWebサーバにデプロイする

定型処理は自動化しましょう!ということで、JenkinsからMSDeployを使ってASP.netプログラムを、Windows 2012 Server上のIISにデプロイできるようにしてみました。

 

Windows Server 2012 (デプロイ先)の設定

◯前提条件

  • サーバーマネージャーからIISがインストールされている状態

 

◯Web Platform Installer から、Web配置ツールをインストール

製品 → すべて → Web配置ツールを探し出して、追加をクリック

無題クリップ 062813 030821 PM

 

インストールをクリックすると、『これでインストールするけど、いいかい?』って聞かれるので、同意しましょう。

無題クリップ 062813 030930 PM

 

 

インストールが終了するまで待ちます。

無題クリップ 062813 030957 PM

 

 

他のもいろいろインストールされましたが、Web配置ツールが入ったので良しとしましょう。

無題クリップ 062813 031118 PM

 

 

◯IISで展開の設定

IIS上のDefault Web Site を右クリックし、展開→Web配置による発行の有効化 をクリックします。

無題クリップ 062813 031514 PM

 

 

Web配置による発行の有効化の画面が出てきます。

ほとんどは初期値で良いのですが、『発行の設定ファイルの保存先を指定します』の項目だけは初期値ではうまく行かなかったので、C:¥inetpub¥wwwroot配下に設定します。

無題クリップ 062813 043330 PM

あとは、設定をクリックして、設定を反映しておきます。

 

 

 

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 : 今回は使用しません。

Blog 20130910 01

 

 

◯ジョブを作成する

フリースタイル・プロジェクトのビルド を選択して、新規ジョブを作成します。

 

◯MSBuildの設定

『ビルド手順の追加』から、『Buil a Visual Studio project or solution using MSBuild』を選択し、手順を追加します。

Blog 20130910 03

 

MSBuild Version : 『MSBuildプラグインの設定』で作成した、バージョン情報

MSBuild Build File : ジョブディレクトリ配下のworkspaceディレクトリ配下からの、プロジェクトorソリューションファイルへの相対パス

Command Line Arguments : ビルドはリリースで、ターゲットはPackageに指定

Blog 20130910 02

 

◯MSDeployコマンドを設定する

『ビルド手順の追加』から、『Windowsバッチコマンドの実行』を選択し、手順を追加します。 

Blog 20130910 04 

設定するバッチコマンドの内容は以下のようになります。(実際は一行で記述します。)

"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

Blog 20130910 05

 

 

以上で、デプロイサーバ側、Jenkinsジョブの設定が完了です。

これでVCSのポーリングを組み合わせて、コミット/プッシュに応じてビルド〜デプロイまでを自動化することができます。

本番環境へのデプロイなんかは、間にテストをかませたり、ワークフロー的な動きが出てきたりしますが、開発環境レベルではこのレベルで問題かなぁと思います。

 

 

0 件のコメント:

コメントを投稿