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
正しいユーザーなら正常に動作します。