如何将值从ansible返回给jenkins?

时间:2018-07-09 11:15:24

标签: jenkins ansible jenkins-pipeline

如何从ansible剧本到jenkins文件中获取一些返回值???我想从janskins的任务中推送自定义状态详细信息。我正在使用jenkins ansible插件。请帮忙。

stage('Deploying and restarting the application') {
    withEnv(['ANSIBLE_HOST_KEY_CHECKING=False']) {
        ansiblePlaybook credentialsId: 'cred',
                extras: "-e artifactName=${artifactName} -e artifactPath=${artifactPath} -e version=${version} -e packaging=${packaging}",
                installation: 'Ansible 2.1',
                inventory: 'ansible/Inventory',
                playbook: playbookPathHolder, sudoUser: null
 }
}

1 个答案:

答案 0 :(得分:2)

最好的方法是使您的剧本将输出内容写入Jenkins可以解析的文件中。

在ansible内部,您可以使用以下过滤器将变量序列化为文件:

{{ some_variable | to_nice_json(indent=2) }}

从Jenkins可以使用以下方法将文件反序列化为JSON对象:

def ansibleOut = new JsonSlurper().parseText(inputFile.text)