web-dev-qa-db-ja.com

jenkinsパイプラインでansibleプレイブックを実行する

JenkinsパイプラインでansiblePlaybookを実行しようとすると問題が発生するため、このトピックを開きます。プラグインansibleはインストールして有効にします。私は環境をセットアップして、以下に示すように私のansibleパイプラインを呼び出すJenkinsfileを書きました:

enter image description here

ご覧のように、私はansibleがパスにあり、それを認識したことも確認しました。しかし、それを実行することはできません。エラーのある出力の下:

enter image description here

私もそれをシェルコマンドのように実行しようとしました:

enter image description here

しかし、それは私のサーバーに到達できず、ssh接続は失敗します:

enter image description here

しかし、フリースタイルの仕事でansibleを使用するとうまく機能するので、なぜかわかりません!

うまくいけば、誰かがこの問題を手伝ってくれて、2番目の問題でも解決策があるので、私は一時的な解決策を持つことができます。私の英語が悪い場合は許してください。私の母国語ではありません。

よろしく、

3
Nab

最初に回答してくれた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'
                )
            }

同じ問題を抱えているといいのですが、このトピックで助けてくれる人がいるかもしれません。

よろしく、

1
Nab