0

ジェンキンスをあるサーバーから別のサーバーに移動しましたが、ほとんどのものが機能しているように見えますが、マスターでビルドできなくなりました。

マスターでジョブを実行すると、bash プロファイルが供給されないため、すべてのパスがありません。デバッグするために、マスターと同じ資格情報を使用してスレーブをセットアップすると、問題なく動作します。ユーザー名とマシン名をエコーするジョブを取得しましたが、それらは「マスター」で実行されているか、同じマシンにセットアップされているスレーブで実行されているかに関係なく同じです。

マスターで実行しているときにジェンキンスに bash プロファイルを提供する方法についてのアイデアはありますか?

編集:コマンドラインから手動でジェンキンスを起動すると、この問題が発生しないことに気付きました。たとえば、次の最初のコマンドは機能しますが、2 番目のコマンドは機能しません。

$ nohup java -jar "${JENKINS_PATH}" --httpPort=${HTTP_PORT} > ${LOG_PATH} 2>&1 &  # WORKS
$ /sbin/service jenkins start  # DOESN'T WORK

起動スクリプトで jenkins を起動するコマンドは、コマンド ラインで実行しているものと同じです。

4

2 に答える 2

0

ジョブが Ant を使用するように設定されている場合は、任意の初期化を~/.antrcファイルに入れることができます。これは、Linux/Mac のシェル スクリプトであるかのように解釈されます。初期化ファイルを強制的に読み込むことで、パスやその他の変数の設定を行うことができます。

. /etc/profile
. ~/.bash_profile

最初の例でうまくいく理由は、Java プロセスが環境を継承するコマンド プロンプトから起動されているからです。2 番目のケースでは、別のユーザーとして別の環境で実行される可能性のあるサービスを開始しています。

この方法が機能しない場合は、jenkins サービスの開始時に呼び出されるスクリプトがあることに気付くかもしれません。man service各サービスの構成ファイルが存在する場所を見つけてから、上記のように bash プロファイル ファイルを強制的に含めてみてください。

于 2012-10-16T10:50:33.083 に答える
0

ユーザー/グループのメンバーシップ、ファイルのアクセス許可など、新しい構成のセットアップを確認する必要があります...

Jenkins をインストール (アップグレード) することもできます。これにより、製品のファイルが再度コピーされ、初期化の詳細の再構成が試行されます。

于 2012-10-16T08:48:25.593 に答える