2016-05-26 17 views
2

私はジェンキンスで仕事を作りました。私はいくつかのホスト上で私のコマンドを実行したい(それは私が不可能を使用する理由です)。しかし、私はそれはいくつかの許可エラーで失敗したプロジェクトを実行しようとすると:Jenkinsを使って実行すると

/home/ubuntu/install.sh" -s -U ubuntu -f 5 FATAL: command execution failed java.io.IOException: Cannot run program "/usr/bin/ansible" (in directory "/var/lib/jenkins/jobs/Standard Demo/workspace"): error=13, Permission denied at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) at hudson.Proc$LocalProc.(Proc.java:244) at hudson.Proc$LocalProc.(Proc.java:216)

をあなたは問題が何であるかを知らないのですか?私はadminユーザーとしてjenkinsサーバーにログインしています。

+1

あなたのjenkinsジョブは、デフォルトでは実行可能なシェルがないユーザー 'jenkins'として実行されます。まずそのルートを試してみてください。 –

+0

あなたはジェンキンの仕事と共有のスナップショットを取ることができますので、お手伝いできます。 –

答えて

0

これは危険な問題ではなく、Jenkinsの設定上の問題です。他の人が指摘しているように、Jenkinsはデフォルトで「通常のユーザー」(通常はjenkins)として実行されます。これは、ジョブやステップ(あなたが呼び出しているシェルスクリプトを含む)が実行されるユーザーです。あなたの場合、このユーザーにはAnsibleを実行するための十分な権限がありません。

このデフォルトユーザーを変更することはお勧めできません。このセットアップには良いセキュリティ上の理由があります。b。 Jenkinsのすべてのユーザーが新しいユーザーと一致するためのアクセス許可の問題に対処する必要があるため、実際には複雑になる可能性があります。しかし、スクリプトビルドステップの中からsudoを実行するのは簡単です。そのツールを使用して(そして適切に設定された/etc/sudoers)ビルド中に必要な権限を得るだけです。

関連する問題