2

次の問題があります: Jenkins-CI に ANT タスクがあり、(明らかに) OSX のウィンドウ サーバーにアクセスする必要があります (ウィンドウを表示する必要があります)。いくつかの調査を行った後、現在ログインしているユーザーと「root」ユーザー (または SUDO) のみが OSX のウィンドウ サーバーにアクセスできるようです。ANT タスク (Adobe ADL) は実際にビルドを「実行」するタスクであるため、画面をポップアップする必要があります。

OSX 10.7.something (Lion)、Jenkins 1.487、Ant 1.8.4 を実行している MacBook を使用しています。

私がこれまでに試したこと:

  • まず、「ベアボーン」 < exec > タスクを試して ADL を呼び出しました。動作しますが、デーモンとして実行されている Jenkins (homedir /Users/shared/Jenkins/Home を使用) が OSX の Window Server にアクセスできないというエラーが発生します。

  • jenkins launchd.conf ファイルの USER_NAME、GROUP_NAME、JENKINS_HOME を変更して、Jenkins を自分で実行します : https://wiki.jenkins-ci.org/display/JENKINS/Thanks+for+using+OSX+Installer Jenkins CIの作成者と連絡を取って解決しようとしたエラー/トラブルですが、残念ながら役に立ちませんでした。

  • Ant に < exec > タスク (シェル スクリプトを実行) を実行させてみてください。このタスクでは、stdinput にパスワードを渡すこの卑劣な方法を使用して、パスワードを使用して sudo を試みます。sudo -S < コマンド > これは本当に悪いですが、Jenkins をローカルで実行しているため (LAN の外部からはアクセスできません)、np です。

  • パスワードを入力文字列として「リダイレクター」を使用して、Ant に < exec > タスクを実行させようとしました。また、スーパーバッドですが、そうです、私はそれを機能させたいだけです。それはしませんでした。

  • Jenkins SSH プラグインを試しましたが、うまくいきませんでした。ただし、ターミナルを使用して自分のローカルホストに SSH で接続することはできましたが、Jenkins SSH が何をしようとしていたのかわかりません (どうすればそれを理解できますか?) ので、なぜそうしないのかわかりません仕事。

  • AntにSSHEXECタスクを実行させようとしました(数時間後、最終的に機能しました。Mac用のAntは中断され、オプションの.jarタスクの名前が正しく変更されていないなど)、「com.jcraft. jsch.JSchException: Auth fail" をグーグルで検索しましたが、解決できないようです。適用可能な唯一の解決策は、sshd がパスワード認証を受け入れるようにすることです。それを行っても、同じエラーが発生します。

私が達成したいことは、多くのことを学びましたが、これまでこの問題に費やした 2 日間の価値はなかったと思います。ただし、これを機能させたいだけで、まだ敗北を受け入れません:)

私の質問: 同様の問題を解決する必要がありましたか? どのように解決しましたか? この問題を解決するために試みることができる他の方法はありますか? JUST _WORK_で、私が何か間違ったことをしたと言及されている方法はありますか?

[編集] 私のラップトップはビルド サーバーではないので、(私にとっては) これは全体的により良いソリューションだと思うので、Jenkins スタンドアロン アプリを使用することにしました。また、Jenkins アプリは起動時に開始できるため、実際にはローカル サーバーとして機能します。

4

2 に答える 2

1

簡単な推測: スクリプトの対話性が必要なく、スクリプトがそれなしで実行できる場合は、Java コマンドラインでヘッドレス モードを設定してみてください。

-Djava.awt.headless=true 
于 2012-10-29T15:55:14.453 に答える
0

私のラップトップは(ヘッドレス)ビルドサーバーではないため、(私にとって)これはとにかくより良いソリューションだと思うので、Jenkinsスタンドアロンアプリを使用することにしました。また、Jenkins アプリは起動時に起動できるため、サーバーとしても機能します。

于 2012-10-29T20:54:07.433 に答える