JenkinsからSSHでLinux(CentOS7)サーバーのsudo操作をするとき
例えば、
Jenkinsさんに
「Linuxサーバーに繋いで、
sudo systemctrl restart httpd
なんかを実行してもらいたい!」
しかし、sudoでやるコマンドなんて彼には恐れ多いのか、頑なにやってはくれない。。。
そんな彼にどうにかやってもらうための方法。
(かなり大雑把なやり方なので細かく権限をわけたいのであればもうちょっとググったほうがいいです)
ttyが無い
- sudo: sudo を実行するには tty がなければいけません。すみません
すいませんとかいらないから解決策を言ってほしい。
Linuxにログイン
(rootユーザで)
visudo
sudoersが編集状態になるので、
/etc/sudoers
Defaults requiretty
↓
# Defaults requiretty
しかし解決せず…。↓
askpassが指定されてない
- sudo: 端末 (tty) が存在せず、パスワードを尋ねる (askpass) プログラムが指定されていません
詳細にムリと言われた(すいませんとは言われなくなった)。
Linuxにログイン
(rootユーザで)
visudo
sudoersが編集状態になるので、
/etc/sudoers
(一番下に追加)
ssh_user ALL=(ALL) NOPASSWD:ALL
-
「ssh_user」は適宜自分のJenkinsさんからSSH接続するときのユーザ名に合わせてください。
-
すでにある場合は↑のように変更。
ちなみに、これは
ssh_user さんは パスワード無しでrootと同じこと全部できるぜ!
という強気の設定です。
重ねて言いますが
かなり大雑把なやり方なので細かく権限をわけたいのであればもうちょっとググったほうがいいです!