2012-08-09 34 views
39

Jenkinsでデフォルトのユーザーの代わりにrootとしてシェルスクリプトを実行する必要があります。私は何を変更する必要がありますか?あなたはsudoを使用してスクリプトを実行する必要がありますJenkinsでrootとしてスクリプトを実行する方法は?

# User privilege specification 
root ALL=(ALL) ALL 
igx  ALL=(ALL) ALL 
%wheel ALL=(ALL) ALL 

# Allow members of group sudo to execute any command 
# (Note that later entries override this, so you might need to move 
%sudo ALL=(ALL) ALL 
# 
#includedir /etc/sudoers.d 

# Members of the admin group may gain root privileges 
%admin ALL=(ALL) NOPASSWD:ALL 
root ALL=(ALL) ALL 
jenkins ALL=NOPASSWD: /var/lib/jenkins/workspace/ing00112/trunk/source/ 
jenkins ALL=(ALL) NOPASSWD:ALL 
#Defaults:jenkins !requiretty 
+0

可能重複使用[スーパーユーザーとしてジェンキンスを実行する方法を?](http://stackoverflow.com/questions/ 11841140/how-to-run-jenkins-as-super-user) –

答えて

67

マイsudoersファイルには、このようなものです

sudo /path/to/script 

しかし、あなたはjenkins/etc/sudoersでスクリプトをTUNできるようにする必要があります前に。

jenkins ALL = NOPASSWD: /path/to/script 
+0

@Igoreありがとう...あなたは100%正しいです...そして私はコマンドを使ってスーパーユーザーとしてスクリプトを実行しました:) – Mahesh

+2

"jenkins ALL = NOPASSWD:/ bin/sh、/ path/to/script"へのシェルスクリプトの変更を実行し、次に "sudo sh/path/to/script"を実行する –

+2

リンクhttp: /www.atrixnet.com/allow-an-unprivileged-user-to-run-a-certain-command-with-sudo/助けることができます。私の場合私はスクリプトではなくコマンド 'scp'を使う必要があった。あなたのヒントも参考になりました。 thx – Yauhen

4

私はこの質問のパーティーに遅れてんだけど、リファレンスために私はここで私の2Cを投げるだろうと思って実現します:ジェンキンスは、これを達成するために、私はSSHプラグインを使用します(単に設定ローカルホストターゲット)。このようにして、sudoを使って外部スクリプトを呼び出すのではなく、Jenkins内で直接スクリプトを実行することができます(通常の "Execute shell"ステップのように)。

7

@Igor Chubinの回答は100%正しいですが、決して普通のエディタでsudoerファイルを開きません。いつもこれが/etc/sudoersに行くことができますちょうど

sudo visudo 

を入力visudoを

使用し、保存するとき、それは、フォーマットに誤りがないことを確認します。

あなたはsudoerファイルにエラーを作る場合、あなたはsudoのアクセスを失うことになるので、いつものvisudo

関連する問題