Jenkinsがrootでコマンドを実行できるようにする

Jenkinsがrootでコマンドを実行できるようにする

SSHを介して本番サーバーにログインし、systemctl restart myservice.serviceを使用して一部のサービスを再起動するJenkinsサーバーがあります。

同様の質問を読んで、最も一般的な解決策は次のとおりです。

jenkins ALL = NOPASSWD: /bin/systemctl restart myservice.service, /bin/systemctl restart myservice2.service

sudoersファイルに挿入します。

私も追加しました

Defaults:jenkins !requiretty

私の配布ファイルは次のとおりです。

sudo /bin/systemctl restart myservice.service

その後、努力にもかかわらず、次のエラーが発生します。

sudo: no tty present and no askpass program specified

私はssh'ingで-tの使い方を読んでいましたが、いくつかのコマンドを実行していますが、その一部はsudoコマンドではないので、これを行う方法がわかりません。

Jenkinsに私のサービスを再起動させる良い解決策がある人はいますか? Jenkinsがrootをデフォルトユーザーとして使用するのを避けたいです。

編集する:

これは私の側の問題です。私はjenkins sshを別のサーバーに接続しましたが、「jenkins」としてログインしていないため、無効なユーザーの権限を変更しています。ソリューション

jenkins ALL = NOPASSWD: /bin/systemctl restart myservice.service, /bin/systemctl restart myservice2.service

正しいユーザーなら正常に動作します。

関連情報