Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Richard, we didn't want to put CruiseControl anywhere near staging or production servers.</p> <p>For LAN (ie. internal production servers) we have manually triggered Production Deploy CC tasks which stop IIS (sites and app-pools), copy the new site across and restart IIS stuff.</p> <p>For DMZ deployments (ie. internet stuff, no AD-auth'd connections possible) we do as much of the build as we can internally and ZIP up the results, including a NAnt script which does the 'final steps'. There is an internal CC task which does all that and FTPs the ZIP out to the target servers. To complete the process requires manual intervention: logging in to the box remotely, unzipping and then running the NAnt to 'complete' deployment (stop/copy/start/whatever).</p> <p>I'm not sure about GAC, but IIS seems controllable via .VBS files</p> <pre><code>' 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() </code></pre> <p>For services we use <code>psexec.exe</code> via NAnt</p> <pre><code> &lt;property name="Remote.Executor" value="${ToolsDir}\PSTools\psexec.exe" overwrite="false" /&gt; &lt;!-- installs a particular windows service remotely from the command line --&gt; &lt;target name="installWindowsServiceRemote"&gt; &lt;echo message="${Service.Install.Action}ing ${Service.Name} on ${Deploy.TargetServer}..." /&gt; &lt;exec program="${Remote.Executor}"&gt; &lt;arg line="\\${Deploy.TargetServer} ${Deploy.TargetFolder}\${Service.Name} /${Service.Install.Action}" /&gt; &lt;/exec&gt; &lt;/target&gt; </code></pre> <p>Anyway there's probably dozens of ways to approach this - the internally-automated/external-manual-step-required setup works for us.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload