3

J'ai l'installation de CruiseControl.NET sur un serveur. J'ai tout parfaitement fonctionné. Tout ce qui signifie, tirez le code de SVN, construisez-le, lors de la construction réussie, lancer une configuration de projet avec un déclencheur de projet pour déployer le code dans l'environnement DEV. J'ai ajouté quelques paramètres de sécurité internes, principalement des groupes d'utilisateurs. J'utilise la sécurité LDAP. Lorsque j'ai ajouté les fonctions de sécurité, mon déploiement automatisé sur le serveur DEV a cessé de fonctionner. Je peux forcer la construction du projet pour le déployer, mais quand le projet n ° 1 réussit, j'obtiens l'erreur ci-dessous quand le déclencheur du projet de déploiement démarre (j'ai remplacé le nom du projet par PROJECT):CruiseControl.NET - Le projet n'existe pas

2010-07-20 13: 28: 19,354 [PROJET: DEBUG] Récupération de ProjectStatus à partir du serveur: tcp: // localhost: 21234/CruiseManager.rem
2010-07-20 13: 28: 19,355 [PROJET: ERREUR] Exception: Le projet 'PROJECT' n'existe pas sur le serveur CCNet.

ThoughtWorks.CruiseControl.Remote.NoSuchProjectException: Le projet 'PROJECT' n'existe pas sur le serveur CCNet.
à ThoughtWorks.CruiseControl.Core.Triggers.ProjectTrigger.GetCurrentProjectStatus()
à ThoughtWorks.CruiseControl.Core.Triggers.ProjectTrigger.Fire()
à ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.Fire()
à ThoughtWorks.CruiseControl.Core.ProjectIntegrator.PollTriggers()
à ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Integrate()
à ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Run()

I ont une activité compte d'annuaire s etup pour CruiseControl, et le service est exécuté sous ce compte d'utilisateur (qui a des droits d'administrateur). J'ai donné à l'utilisateur CruiseControl un accès complet à tous les projets en ajoutant l'utilisateur à mon groupe "admin" dans la section des paramètres internes de la configuration de CruiseControl.

Des idées sur la façon de rendre le projet accessible à CruiseControl afin qu'il puisse voir une exécution du déploiement automatique?

+0

pouvez-vous poster une partie du fichier de configuration avec les paramètres? –

Répondre

0

Voici le code de déploiement automatique, qui surveille le projet Web, une fois qu'il a été construit avec succès, il devrait s'éteindre. Et, cela ne fonctionne sans la configuration de la sécurité intérieure:

<cb:scope ProjectName="$(projMhWebDevDeploy)"> 
<project name="$(projMhWebDevDeploy)" queue="Q1" queuePriority="1"> 
    <cb:define safeProjectName="MH_Web_Dev_Branch_Deployment"/> 
    <cb:define projectDirectory="$(ccnetDirectory)\Projects\$(safeProjectName)"/> 

    <triggers> 
    <projectTrigger project="$(projMhWeb)"> 
     <triggerStatus>Success</triggerStatus> 
     <innerTrigger type="intervalTrigger" seconds="5" buildCondition="IfModificationExists" /> 
    </projectTrigger> 
    <projectTrigger project="$(projMhWeb)"> 
     <triggerStatus>Success</triggerStatus> 
     <innerTrigger type="intervalTrigger" seconds="5" buildCondition="ForceBuild" /> 
    </projectTrigger> 
    </triggers> 

    <category>DEV Deployments</category> 
    <webURL>$(urlCcnetDashBoard)</webURL> 
    <workingDirectory>$(projectDirectory)</workingDirectory> 
    <artifactDirectory>$(ccnetDirectory)\BuildFiles\$(safeProjectName)</artifactDirectory> 

    <tasks> 
    <!-- Deploy Code --> 
    <exec> 
     <executable>$(deployCodeBat)</executable> 
     <buildArgs> 
     $(ccnetDirectory)\Projects\MH_Web\Web 
     $(deployMhWebDev) 
     brh 
     </buildArgs> 
     <baseDirectory>$(ccnetDirectory)\BatchFiles\</baseDirectory> 
    </exec> 
    <!-- Deploy Helicon HTTPD --> 
    <exec> 
     <executable>$(deployHeliconBat)</executable> 
     <buildArgs> 
     $(ccnetDirectory)\Projects\MH_Web\Web 
     "$(deployHeliconDev)" 
     httpd.conf 
     </buildArgs> 
     <baseDirectory>$(ccnetDirectory)\BatchFiles\</baseDirectory> 
    </exec> 
    </tasks> 
    <publishers> 
    <xmllogger /> 
    <modificationHistory onlyLogWhenChangesFound="true" /> 
    <email mailport="25" includeDetails="true" useSSL="false" from="FROM" mailhost="SERVER"> 
     <users> 
     EMAIL ADDRESSES ARE HERE 
     </users> 
     <groups> 
     <group name="BuildMaster"> 
      <notifications> 
      <notificationType>Always</notificationType> 
      </notifications> 
     </group> 
     </groups> 
    </email> 
    </publishers> 
    <security type="defaultProjectSecurity" defaultRight="Deny"> 
    <permissions> 
     <rolePermission name="Developers" ref="Developers"/> 
     <rolePermission name="Admin" ref="Admin"/> 
    </permissions> 
    </security> 
</project> 
</cb:scope> 
0

Je pense que vous devez définir les paramètres de sécurité pour vos rôles - Je ne vois pas de balisage de sécurité intérieure là. C'est bien que vous ayez les permis et les comptes AD, mais vous devez dire à CCNet ce que cela signifie. Essayez d'ajouter le dessous ci-dessous de vos balises de projet (après avoir changé les noms de domaine et de groupe, bien sûr):

<internalSecurity>   
    <permissions> 
     <!-- Roles --> 
     <rolePermission name="Admin" forceBuild="Allow" startProject="Allow" > 
      <users> 
       <userName name="DOMAIN\GROUP1\"/> 
      </users>   
     </rolePermission> 
     <rolePermission name="Developers" forceBuild="Deny" startProject="Deny"> 
      <users> 
       <userName name="DOMAIN\GROUP2\"/> 
      </users> 
     </rolePermission> 
    </permissions> 
</internalSecurity> 
Questions connexes