LoginSignup
19
18

More than 5 years have passed since last update.

Jenkinsでシェルスクリプトを他のユーザとして実行

Posted at

Capistrano でつくった cap タスクを、Jenkins に移行していく場合など、Jenkins のビルド(シェルスクリプト)の実行ユーザを指定したいことがある。

以下のように sudo 実行できるようにしてやればよい。
(jenkins ユーザが Jenkins を実行している想定)

sudoの設定を変える

jenkins ユーザで特定のスクリプトに限り、tty が無くても sudo できるようにする。

$ sudo /usr/sbin/visudo
# Defaults requiretty
Defaults:jenkins !requiretty
jenkins ALL=(user) NOPASSWD: /home/user/foo.sh

実行する処理をスクリプトにまとめておく

異常終了時にビルドを中止できるよう、-xe 指定で実行しておく。

/home/user/foo.sh
#!/bin/bash -xe

echo "foo"

Jenkins のビルド設定で sudo -uオプションでユーザを指定してビルドのシェルスクリプトを書く

sudo -u user /home/user/foo.sh
19
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
18