【问题标题】:creating jenkins jobs with ansible使用 ansible 创建 jenkins 工作
【发布时间】:2014-11-19 10:18:47
【问题描述】:

我正在做一个使用 ansible 在 centos7 上部署 jenkins CI 服务器的项目 而且我在使用 ansible 从 xml 模板创建 jenkins 作业时遇到问题。

到目前为止一切正常,但现在我希望能够创建作业,并使用 ansible 从 xml 文件为它们提供一些基本配置。我的解决方案是来自 jenkins-cli 的以下命令:

sudo java -jar jenkins-cli.jar -s http://localhost:8080 create-job Job_test1 < Job_test1.xml

在 centos7 框中手动输入时效果很好,但是当我将其放入 ansible 并运行它时:

- name: create jenkins jobs with xml files
  sudo: yes
  command: "java -jar {{ jenkins.cli_dest }} -s http://localhost:8080 create-job {{ item.name }} < {{ jenkins_dest }}/{{ item.xml_name }}"
  with_items: jenkins_jobs

它给出以下错误消息:

stderr: Too many arguments: <
java -jar jenkins-cli.jar create-job NAME
Creates a new job by reading stdin as a configuration XML file.

有人知道这个问题的解决方案吗? 据我所见,我做得很好(因为该命令在未由 ansible 输入时有效)

【问题讨论】:

    标签: git jenkins vagrant ansible jenkins-cli


    【解决方案1】:

    我使用 ansible 管理我的 jenkins CI/CD 管道和设置,并且我严重依赖可用的库(groovy DSL、python jenkins-job-builder)并使用 jinja2 模板化 jenkins XML 配置的内容。 我被要求在本地聚会上展示 ansible 可以做什么,并且一直在编写一些代码,我将在新的一年的聚会上交付和分享。 我真的认为这些东西可以帮助你很多,我目前在我当前的项目中使用这个设置,无法想象以任何其他方式管理 jenkins。

    https://github.com/Azulinho/ansible-jenkins-showcase

    【讨论】:

    • 虽然我的问题已经得到解答,但非常感谢您的回复,我相信这对我确实很有帮助。
    • @azul 你还有更多关于如何将 JJB yaml 代码转换为 ansible 的示例吗?这是否需要在 Jenkins 端配置 ansible 插件?
    【解决方案2】:

    command module 不支持输入和输出重定向,因为它不将命令字符串传递给 shell。它的文档是这样说的:

    它不会通过 shell 处理,因此像 $HOME 这样的变量和像“”、“|”和“&”这样的操作将不起作用(如果您需要这些功能,请使用 shell module )。

    所以:

    - name: create jenkins jobs with xml files
      sudo: yes
      shell: "java -jar {{ jenkins.cli_dest }} -s http://localhost:8080 create-job {{ item.name }} < {{ jenkins_dest }}/{{ item.xml_name }}"
      with_items: jenkins_jobs
    

    【讨论】:

      【解决方案3】:

      您可以通过执行 shell 来使用 shell 重定向。例如,命令 'sh "echo test > hello.txt"' 将按预期工作。只需用类似 '/bin/sh "java ...>..."' 之类的东西包装整个命令。

      【讨论】:

        猜你喜欢
        • 2020-10-14
        • 2023-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-05
        • 1970-01-01
        • 1970-01-01
        • 2013-11-23
        相关资源
        最近更新 更多