LoginSignup
2
2

More than 5 years have passed since last update.

jenkinsの特定のジョブのみ実行ユーザーを変更したい

Last updated at Posted at 2017-08-09

やりたいこと

webアプリをdevelopユーザーで実行していて、それをjenkinsを用いてデプロイしたいときに、developユーザーでしか実行できないコマンドがあるとします。
jenkinsの実行ユーザーをdevelopにしてしまうのも手ですが、なるべくjenkinsユーザーで動かしたいと思っています。

http://qiita.com/mochidamochiko/items/377e30683f797a372103
そこでこちらの記事のを参考に特定のシェルを実行するときのみ、パスワードなしで実行できるようにしました。

設定

/home/develop/shell/deploy.shに実行したいshellを書いて配置します。

その後/etc/sudoersを編集します。
直接ファイルを編集しないで、visudoで編集してください。
visudoで行うと編集後のファイルの整合性チェックを行うので、間違えて壊れた設定にすることを防いでくれます。

$ sudo visudo
# どこかいい感じのところへ下記を追加
jenkins ALL=(develop) NOPASSWD: /home/develop/shell/deploy.sh

これでjenkinsからsudo -u develop /home/develop/shell/deploy.shが実行できると思います。

$ sudo su -s /bin/bash jenkins 
bash-4.2$ sudo -u develop /home/develop/shell/deploy.sh
# 正しく実行されていることを確認

複数ファイルを指定したい場合は以下のようにコンマで区切ればいいみたいです。

jenkins ALL=(develop) NOPASSWD: /home/develop/shell/deploy.sh, /home/develop/shell/test.sh

問題点

配置したシェルを頻繁に更新するなら、毎回サーバにログインして編集する必要があるので、多少面倒です。
今回のように頻繁に更新しなければそこまで問題はないです。

2
2
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
2
2