Jenkins内でsudoなしでコマンドを実行する

Jenkins内でsudoなしでコマンドを実行する

私は多くのシェルスクリプトコマンドを含むいくつかのJenkinsタスクをインポートしました。このコマンドの前にはsudoが付いていました。 Jenkinsには独自のユーザーがいます。各コマンドを書く前にsudoを実行せずにjenkinsを介してこれらのコマンドを実行する方法はありますか?

答え1

ビルドフェーズで使用されるユーザーは、スレーブに接続するために使用されるユーザーです。 (マスターの場合、マスターが実行されているユーザーIDです。)

したがって、必要なユーザー(おそらくlocalhost)でSSHを介して接続されたスレーブを作成し、そのスレーブでジョブを実行します。

答え2

/etc/sudoers.d/ の下にファイルを作成します。 path と NOPASSWD を使用して、このファイルに特定のコマンドを追加できます。

username ALL=(ALL) NOPASSWD: /bin/chown tomcat.tomcat /home/harry/* username ALL=(ALL) NOPASSWD: /bin/mkdir /home/harry/*

引数の場合、

username ALL=(ALL) NOPASSWD: /bin/mkdir * /home/harry/*

同様に、このようなコマンドを発行し、パスワードなしでJenkinsで実行できます。ユーザー名は、sshまたは同じマスターサーバーで実行するために使用するjenkinsユーザー名であることを覚えておいてください。

関連情報