7

現在、ビルドを行うためのCC.Netセットアップがあり、素晴らしいです。しかし、今私はすべての道を進み、展開にも使用したいと思っています。私はステージングにCC.Netをインストールすることを考えていました。ビルドが完了し、それが自動ビルドされてステージングにforcebuildトリガーが発動され、msbuildとgacに必要な拡張機能がインストールされました。インストールを完了させる。クルーズコントロールを使用した.Net配備の自動化.Net

同様の目標を持っていると思われるmsdeployも見たことがあります。私の計画についてどう思いますか?また、どのように自動展開を行っていますか?

ノート

  • SMB(ファイル共有)PSEXECの可能性を排除ステージングネットワークで無効になっています。それが無効になっている理由は、ネットワークを閉鎖したいと思っていることです。私が開設について尋ねたとき、開かれる必要があるポートがあまりにも多いと言われました。認証とは何か?

    • このポート引数がバンクの場合があります。以前はSambaの共有を設定しましたが、Active Directoryを使ったことがないので、シャットダウンして聞いていました。
  • のみFTP、RDPおよびHTTPは、我々はどこにでもステージングまたは運用サーバーに近いCruiseControlのを入れたくなかった

答えて

6

にリチャード、 を開いています。

私たちは、IIS(サイトとアプリケーションプール)を停止し、新しいサイトをコピーしてIISのものを再起動するProduction Deploy CCタスクを手動で起動しました。

DMZデプロイメント(インターネットのもの、AD-auth'd接続が可能です)では、最終的な手順を実行するNAntスクリプトを含めて、内部的にビルドを行い、 。すべてを実行し、ZIPをターゲットサーバにFTPする内部CCタスクがあります。プロセスを完了するには、手作業による介入が必要です。ボックスにリモートログインし、NAntを解凍して「完了」展開(停止/コピー/開始/何でも)します。

私はGACについてはよく分からないんだけど、IISはNAntの

<property name="Remote.Executor" value="${ToolsDir}\PSTools\psexec.exe" overwrite="false" /> 
    <!-- installs a particular windows service remotely from the command line --> 
    <target name="installWindowsServiceRemote"> 
    <echo message="${Service.Install.Action}ing ${Service.Name} on ${Deploy.TargetServer}..." /> 
    <exec program="${Remote.Executor}"> 
     <arg line="\\${Deploy.TargetServer} ${Deploy.TargetFolder}\${Service.Name} /${Service.Install.Action}" /> 
    </exec> 
    </target> 

を経由して、我々はpsexec.exe使用するサービスのために

' Connect to the WMI WebAdministration namespace. 
Set oWebAdmin = GetObject("winmgmts:\\devserver.local\root\WebAdministration") 
' Specify the application pool. 
Set oAppPool = oWebAdmin.Get("ApplicationPool.Name='ProjectName'") 
' Stop the application pool. 
oAppPool.Stop 
' now website; get the application website 
Set objWebSite = GetObject("IIS://localhost/W3SVC/7") ' id of web site 
' get the app pool object for the websites app pool id 
Set objAppPool = GetObject("IIS://localhost/W3SVC/AppPools/ProjectName") 
'stop the site 
objWebSite.Stop() 
' stop the app pool 
objAppPool.Stop() 

はとにかく、おそらくこれにアプローチする方法の数十があります.VBSファイルを経由して制御可能なようです - 内部で自動化された/外部からの手動ステップが必要なセットアップが私たちのために機能します。

+0

ステージングサーバでcc.netを使用していないため+1。 –

+0

+1自動アップロードのアイデアは+1ですが、DMZボックスに物理的にログインする手作業の「最後のステップ」です。 – CodingWithSpike

1

私はCraigと同意します。ステージサーバーにCC.NETは必要ありません。私たちはビルドサーバーとプッシュアウトから開発者まですべてを行います。ステージ。 MSBuildを使用して、コンパイルごとにターゲットが設定され、いずれの環境に応じて一部またはすべての部分を両方のサーバーまたはサーバーの組み合わせにプッシュします。したがって、ビルドサーバー上のCC.net上の各プロジェクトは、MSBuildのターゲットまたはトラックに加えて、すべての連続ビルドに対応しています。

+0

以下を修正したい場合があります。 "ビルドサーバーにCC.NETをインストールしたくありません。" – Ryu