JenkinsパイプラインでansiblePlaybookを実行しようとすると問題が発生するため、このトピックを開きます。プラグインansibleはインストールして有効にします。私は環境をセットアップして、以下に示すように私のansibleパイプラインを呼び出すJenkinsfileを書きました:
ご覧のように、私はansibleがパスにあり、それを認識したことも確認しました。しかし、それを実行することはできません。エラーのある出力の下:
私もそれをシェルコマンドのように実行しようとしました:
しかし、それは私のサーバーに到達できず、ssh接続は失敗します:
しかし、フリースタイルの仕事でansibleを使用するとうまく機能するので、なぜかわかりません!
うまくいけば、誰かがこの問題を手伝ってくれて、2番目の問題でも解決策があるので、私は一時的な解決策を持つことができます。私の英語が悪い場合は許してください。私の母国語ではありません。
よろしく、
最初に回答してくれたMatt SchuchardとJimit Raithathaに感謝します。問題を解決する方法を見つけました。私はansibleプラグインを使用し、次のコードを使用してansibleを追加します。
withEnv(["PATH+ANSIBLE"=${tool 'name of the tool in tool configuration'}])
ただし、withEnvはシェルコマンド(sh '...')にのみ適しており、Javaの呼び出しはansiblePlaybookで行ったように機能しません。ansiblePlaybookコマンドには、ユーザーが使用するツールの場所を指定するには、カスタムツール構成で指定された名前のパラメーターを使用するように追加するだけです。sshエラーの場合、単にsshagentを構成しませんでした。ここでは例を示します。
sshagent (credentials: ['name of the credential']) {
ansiblePlaybook(
credentialsId: id of the credential',
inventory: 'inventory file',
installation: 'name of the tool specified on the configuration tool screen',
limit: 'Host where run the playbbok',
playbook: 'path to the playbook',
extras: ' options and var that you want add for instance verbose mode : -vvv'
)
}
同じ問題を抱えているといいのですが、このトピックで助けてくれる人がいるかもしれません。
よろしく、