Jenkinsでスクリプトを実行する[閉じる]

Jenkinsでスクリプトを実行する[閉じる]

ユーザーxのホームディレクトリにあるjenkinsを介してスクリプトを実行する必要があります。 /home/x/script.sh

.sshこのスクリプトはフォルダから構成設定を抽出するため、ユーザーxのみを実行できます。

現在のスクリプトはjenkinsユーザーを介して実行されると思うので失敗します。

ベストアンサー1

あなたの行動はあなたの目的に違反します。スクリプトはユーザー固有の資格情報によって異なりますが、Jenkinsはユーザー固有の構成と資格情報からビルドを分離するように設計されています。これらの競合を解決するには4つの方法があります(すべての方法はセキュリティ上のリスクを引き起こす可能性があるため、慎重に進めてください)。

  1. タスクを実行するには、Jenkinsに資格情報を付与してください。 (sshキーを提供する)これの利点は、jenkinsが実行した操作が開発者ではなくjenkinsに書き込まれ、jenkinsが実行する必要がある操作を制限できることです(例:ssh forceコマンドが役に立ちます)。欠点は、Jenkinsが共有ユーザーであるため、彼の資格情報がより簡単に漏洩することです。

  2. スクリプトの実行中にユーザーを切り替えます。 (解決方法は次のとおりです。)runuserに加えて、sudoとsuperも見てください。 (このユースケースではsuperをお勧めします。)利点は、スクリプトを作成したのと同じユーザーでスクリプトが実行されるため、トラブルシューティングがより簡単であることです。欠点は、ユーザーとしてJenkinsが行った操作がユーザーに帰属し、ユーザーのアカウントが破損する可能性が高いことです。 (この問題は、jenkinsユーザーに厳格なsudoまたはsuper権限を付与し、jenkinsからユーザーに渡されたものを信頼できないことで軽減することができます。

  3. スクリプトを実行するサーバーを作成します。 CGI、RPCなど

  4. すべてを考え直してください。資格情報をまったく要求せずに実行する必要がある操作を実行する方法がある可能性があります。

おすすめ記事