3

サーバーに CruiseControl.NET をセットアップしました。私はすべてが完璧に機能していました。つまり、SVN からコードをプルしてビルドし、ビルドが成功したら、プロジェクト トリガーを使用してプロジェクト セットアップを開始し、コードを DEV 環境にデプロイします。主にユーザーのグループだけで、いくつかの内部セキュリティ設定を追加しました。LDAP セキュリティを使用しています。セキュリティ機能を追加すると、DEV サーバーへの自動展開が機能しなくなりました。プロジェクトを強制的にビルドしてデプロイすることはできますが、プロジェクト #1 が正常にビルドされると、デプロイ プロジェクトのトリガーが開始されたときに次のエラーが発生します (セキュリティ上の理由から、プロジェクト名を PROJECT に置き換えました)。

2010-07-20 13:28:19,354 [プロジェクト:デバッグ] サーバーから ProjectStatus を取得: tcp://localhost:21234/CruiseManager.rem
2010-07-20 13:28:19,355 [プロジェクト: エラー] 例外: プロジェクト'PROJECT' は CCNet サーバーに存在しません。

ThoughtWorks.CruiseControl.Remote.NoSuchProjectException: プロジェクト「PROJECT」が 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() では

CruiseControl 用に Active Directory アカウントをセットアップしており、サービスはそのユーザー アカウント (管理者権限を持つ) で実行されています。CruiseControl 構成の内部設定セクションにある my "admin" グループにユーザーを追加して、CruiseControl ユーザーにすべてのプロジェクトへのフル アクセスを許可しました。

自動展開の実行を確認できるように、CruiseControl がプロジェクトにアクセスできるようにする方法についてのアイデアはありますか?

4

2 に答える 2

0

ロールのセキュリティ設定を定義する必要があると思います - そこには内部セキュリティ マークアップがありません。AD パーマとアカウントを持っていることは問題ありませんが、それらが何を意味するのかを CCNet に伝える必要があります。プロジェクト タグ内に以下を追加してみてください (もちろん、ドメインとグループ名を変更した後):

<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>
于 2010-07-21T18:06:58.880 に答える
0

これは、Web プロジェクトを監視する自動展開コードです。正常にビルドされると、これが開始されます。そして、これは内部セキュリティ構成なしで機能します:

<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>
于 2010-07-20T21:18:00.620 に答える