私は多くのシェルスクリプトコマンドを含むいくつかの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ユーザー名であることを覚えておいてください。