7

Actualmente tengo la configuración CC.Net para hacer compilaciones y es increíble. Pero ahora quiero ir todo el camino y usarlo para el despliegue también. Estaba pensando en instalar CC.Net en etapas y, una vez completada la compilación, se ha descargado automáticamente el desencadenador de forzado de construcción y debe usar msbuild y las extensiones necesarias para gac, instalar servicios, etc. para realizar la instalaciónAutomatización de la implementación .Net usando Cruise Control .Net

También he visto msdeploy que parece tener objetivos similares. ¿Qué piensas de mi plan y cómo están haciendo una implementación automatizada?

Notas

  • SMB (archivos compartidos) se inhabilitan en la red puesta en escena que elimina la posibilidad de psexec. La razón por la que está deshabilitada es que queríamos que la red se bloqueara y cuando le pregunté sobre la apertura me dijeron que también era necesario abrir muchos puertos. ¿Algo que ver con la autenticación?

    • Puede ser que este argumento de puerto sea litera. He configurado acciones de Samba antes, pero nunca he trabajado con Active Directory, así que me callé y escuché.
  • Sólo FTP, HTTP RDP y se abren

Respuesta

6

Richard, que no queremos poner en cualquier lugar cerca climatizador servidores de ensayo o de producción.

Para LAN (es decir, servidores de producción internos) hemos desencadenado manualmente las tareas de Production Deploy CC que detienen IIS (sitios y grupos de aplicaciones), copian el nuevo sitio y reinician IIS.

Para despliegues DMZ (es decir, cosas de internet, no es posible realizar conexiones autorizadas por AD) hacemos la mayor parte posible de la construcción interna y ZIP los resultados, incluido un script NAnt que realiza los 'pasos finales' . Hay una tarea interna de CC que hace todo eso y envía por FTP el archivo ZIP a los servidores de destino. Para completar el proceso, se requiere una intervención manual: iniciar sesión remotamente en la caja, descomprimir y ejecutar el NAnt para completar la implementación (detener/copiar/iniciar/lo que sea).

No estoy seguro acerca de GAC, pero IIS parece controlable a través de archivos .VBS

' 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() 

Para los servicios que utilizamos psexec.exe a través de 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> 

De todos modos es probable que haya de maneras de abordar esta decenas - La configuración internamente automatizada/externa-manual-paso-requerida funciona para nosotros.

+0

+1 por no tener cc.net en los servidores intermedios. –

+0

+1 para la idea de una carga automática, pero un "último paso" manual de tener que iniciar sesión físicamente en la casilla DMZ. – CodingWithSpike

1

Estoy de acuerdo con Craig, no desea CC.NET en sus servidores de escenario. Hacemos todo desde un servidor de compilación y pushout hasta dev. y etapa. Con MSBuild tenemos objetivos configurados para cada una de las compilaciones, y para enviar todas y cada una de las partes a ambos servidores o combinaciones de servidores, según el entorno. Por lo tanto, cada proyecto en CC.net en el servidor de compilación corresponde a un objetivo o a un registro en MSBuild más el conjunto de compilaciones continuas.

+0

Es posible que desee corregir lo siguiente ... "No desea CC.NET en sus servidores de compilación". – Ryu

Cuestiones relacionadas