转换詹金斯配置.xml到yaml在jenkins_job_build中使用

2024-06-16 09:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用jenkins-job-builder来生成詹金斯的工作。在

我在我的jenkins中添加了ansible插件,我想用它作为我的部署工具。在

当我开始在yaml中转换作业的builder部分时,它对大多数元素都能正常工作。但是,我无法将Extra Variables或{}和{}转换为yaml。在

没有extraVars和{},我的yaml如下。在

builders:
    - ansible-playbook:
        playbook: my_playbook.yaml
        inventory:
            path: '{host_file}'
        sudo: true

我的作业config.xml的生成器节点为

^{pr2}$

我试图添加limitextraVars。在

builders:
    - ansible-playbook:
        playbook: my_playbook.yaml
        inventory:
            path: '{host_file}'
        sudo: true
        limit: myhost
        extra-vars:
            key: ldap_password
            value: ********

但这行不通。在

我试了一下How to convert jenkins job configuration config.xml to YAML format in python to be used jenkins-job-builder?中给出的答案

Answer1给出^{的错误

Answer2仅以xml形式提供。在

builders:
    - raw:
        xml: |
            <org.jenkinsci.plugins.ansible.AnsiblePlaybookBuilder plugin="ansible@0.8">
              <playbook>my_playbook.yaml</playbook>
              <inventory class="org.jenkinsci.plugins.ansible.InventoryPath">
                <path>hosts</path>
              </inventory>
              <limit>myhost</limit>
              <tags></tags>
              <skippedTags></skippedTags>
              <startAtTask></startAtTask>
              <credentialsId></credentialsId>
              <vaultCredentialsId></vaultCredentialsId>
              <sudo>true</sudo>
              <sudoUser></sudoUser>
              <forks>5</forks>
              <unbufferedOutput>true</unbufferedOutput>
              <colorizedOutput>false</colorizedOutput>
              <hostKeyChecking>false</hostKeyChecking>
              <additionalParameters>-b --become-method su --become-user root -u rack --extra-vars &quot;ansible_ssh_pass=************&quot; --extra-vars &quot;ansible_become_pass=************&quot;</additionalParameters>
              <copyCredentialsInWorkspace>false</copyCredentialsInWorkspace>
              <extraVars>
                <org.jenkinsci.plugins.ansible.ExtraVar>
                  <key>ldap_password</key>
                  <value>*******</value>
                  <hidden>false</hidden>
                </org.jenkinsci.plugins.ansible.ExtraVar>
              </extraVars>
    </org.jenkinsci.plugins.ansible.AnsiblePlaybookBuilder>

我知道,我遗漏了limitextraVars的一些东西,它没有将yaml转换成正确的{}。在

我能改变的是jenkins-job-builder生成正确的xml?在


Tags: pathorgyamlbuildersudopluginsjobxml