3

私が持っているBambooクエリで、人々が私を正しい方向に向けてくれることを願っています。

私がいる会社には、非常に正常に実行されている既存のBamboo CIサーバーがあり(古いバージョン-2.6であるにもかかわらず)、新しいビルドをセットアップする必要があります。これまでのBambooの作業のほとんどすべてを行った2人が去ったので、私には実際にアドバイスを求める人が社内にいません。

手動プロセスについて説明し、誰かにこれを自動化するための最良の方法を提案してもらうことを望んでいました。

手動プロセス(すべてWindows展開サーバー上):

  1. 6つの別々の作業ディレクトリで「svnupdate--force」を実行します。これにより、2つの別々のSubversionリポジトリが使用されます。
  2. 6つのディレクトリすべてで「mvncleaninstall」を実行します。そのうちの1つには追加の-Duser.timezoneパラメータを渡す必要があり、正常にビルドする前に2〜3回実行する必要がある場合があります。
  3. 「DeployLocal.bat」バッチファイルを実行します
  4. 「bin\run.bat」スタートアップファイルを実行して、2つのJBOSSインスタンスを開始します

バッチファイル自体は、いくつかのステップに分けることができます。

  1. いくつかのプロジェクトのMavenビルドを実行します(はい、上記の後に冗長です)
  2. 一部のビルドサブディレクトリをデプロイメントサーバーの場所にコピーします
  3. デプロイメントサーバーの自己署名SSL証明書とキーストアを設定します
  4. さらに多くのファイルをデプロイメントサーバーディレクトリの適切な場所にコピーします

これがBambooサーバーでどのように最適に機能するかはわかりません。新しいプランを作成し始めましたが、どのリポジトリを使用するか(2つのサーバーと6つのリポジトリを使用しています)と尋ねられたとき、私は非常に混乱し始めました!

私が正しく理解している場合(私は理解していないかもしれませんが)、通常は、リモート起動コマンドを呼び出す前に、Bambooサーバーですべてのビルドを実行し、サーバー上の適切な場所にファイルを移動することになると思います。これは私がここで行う必要があることですか?

誰かが私に竹の良いガイドを教えてくれたとしても、私はとても感謝しています。誰かが私が達成するために具体的に何を学ぶ必要があるかを理解するのに十分簡単に​​概念を説明することができれば、それはさらに良いでしょう!!

アドバイスは大歓迎です:)

4

2 に答える 2

13

さて、私はWindowsでBambooを実行した経験があまりありませんが、これを試してみます:)バージョン2.6のBamboo管理者ガイドに案内することから始めましょう。

https://confluence.atlassian.com/display/BAMBOO026/Bamboo+Administrator%27s+Guide

計画エージェントに関するセクションを確認してください。

お持ちのBambooのバージョンでは、プランは基本的にスクリプトで構成されています。これは、AntスクリプトまたはMavenスクリプト、あるいはバッチまたはbashスクリプトにすることができます。しかし、あなたは1つしか得られません。Bambooの新しいバージョンでは、複数のスクリプトを実行できます。アップグレードを検討する必要があります。

ただし、どうしてもアップグレードできない場合は、これらの各mavenタスクを実行する単一のモノリシックスクリプトを記述し、DeployLocal.batファイルを実行してから、両方のJBossインスタンスを起動する必要があります。(Bambooがソースコードのチェックアウトビットを処理します。)次に、スクリプトを実行するためにBambooでプランを構成する必要があります。

では、戦略について話しましょう!


+ Bambooサーバーでコードをビルドし、それをリモートWindowsサーバーにコピーしますか?または、リモートWindowsサーバーでビルドしますか?

まず、Bambooライセンスがリモートエージェントをサポートしているかどうかを判断する必要があります。Bambooにログインし、[管理]をクリックします。次に、左側の余白にある[システム]メニューまで下にスクロールします。「ライセンスの詳細」をクリックします。「サポートされているリモートエージェントの数」の下の値は0より大きいですか?

もしそうなら: イェーイ!Windows展開サーバーにリモートエージェントをインストールし、機能を使用してそのリモートエージェントで実行するように計画を構成できます。これは、Bambooでプランを実行すると、すべてのソースコードのチェックアウト/ビルド/スクリプトがWindowsデプロイサーバーで実行されることを意味します。あなたは自分自身にたくさんの仕事を節約しました!

そうでない場合: Bambooサーバーでコードをビルドしてから、デプロイサーバーに転送する必要があります。次のことを行う方法を理解する必要があります。

  1. BambooサーバーからWindowsサーバーにファイルを転送する方法。検討する可能性のあることの1つは、一方のサーバーでNFSファイル共有を設定し、もう一方のサーバーにマウントすることです。または、いずれかのマシンにFTPサーバーをセットアップします。

  2. BambooサーバーからWindowsサーバーでコマンドを実行する方法。これにより、DeployLocal.batファイルを実行してJBossを起動できます。Unix環境では、これはsshを使用して行うのはかなり簡単です。Windowsでは--ええと--多分あなたはいくつかのWindowsのぞき見を調べるべきですか?以前、 MobaSSHサーバーを使用してWindowsマシンでバッチファイルをリモートで実行することができましたが、MobaSSHは、BambooマシンがUnixの場合にのみ意味があります。

  3. ビルド後にコードをパッケージ化して、BambooサーバーからWindowsサーバーにコピーできるようにする方法。これは、Mavenビルドの出力を圧縮してWindowsサーバーで解凍するのと同じくらい簡単です。

  4. すべてをまとめる方法:コードをビルド、パッケージ化、トランスポート、およびアンパックするスクリプトを記述してから、DeployLocal.batおよびjbossスクリプトをリモートで実行します。


+ Bambooプランで複数のリポジトリからコードをチェックアウトするにはどうすればよいですか?

残念ながら、Bamboo 3.3は、ジョブが複数のリポジトリからソースコードをチェックアウトできるようにする最初のバージョンです。ここには、最良から最悪の順に3つのオプションがあります。

  1. 新しいバージョンのBambooにアップグレードします。あなたははるかに遅れているので、苦痛なプロセスになる可能性がありますが、おそらく努力する価値があります。誰かが最終的にそれをアップグレードしなければならないでしょう-後でより今より良いです。

  2. svn:externalsでチートします。Subversionリポジトリの1つに新しいディレクトリを作成し、Bambooがチェックアウトする必要がある6つのリポジトリのそれぞれへの参照を使用してsvn:externalsプロパティを設定します。新しいディレクトリをチェックアウトするようにBambooを設定します。出来上がりです。これらのsvnリポジトリのそれぞれが自動的にチェックアウトされます。

  3. この制限を回避するためのその他のハックを考えてください。たとえば、リポジトリごとにsvnクライアントを1回実行するスクリプトを作成します。


+これは動作するまでに時間がかかる場合があります。

はい。同僚がすでに設定しているすべての計画の構成とスクリプトを確実に調べる必要があります。同僚は、この作業のすべてまたはほとんどをすでに行っている可能性があります。

于 2012-07-18T00:38:19.920 に答える
0

あなた(または他の開発者)の計画がリモートエージェントをサポートしていない場合、回避策はTomcatマネージャーを使用することです(もちろん、それを強化してください):

  • したがって、LinuxまたはWindowsのいずれであっても、bambooサーバーでsvnまたはgitのチェックアウトを実行します。
  • 同じサーバーにmvncleaninstall
  • 竹のジョブを使用してscp経由でアーティファクトをコピーする
  • Tomcatマネージャーを使用して戦争を展開します
  • ローカルWindowsサーバー上の他のバッチファイルの場合、PowerShellスクリプトまたはタスクシェデュラーによってトリガーできます。
于 2015-11-13T04:39:17.073 に答える