meierw.jenkins_job_dsl_exec
jenkins_job_dsl_exec
一个 Ansible 角色,用于创建、执行并删除一个包含 Job DSL 脚本的临时 Jenkins 任务。
需求
- 需要一个已安装
Job DSL
插件的 Jenkins 服务。 - 能够对该 Jenkins 服务执行 jenkins_script。
角色变量
jenkins_job_dsl_url: http://localhost:8080
jenkins_job_dsl_user: admin
jenkins_job_dsl_password: admin
用于身份验证的 Jenkins 的 URL、用户名和密码。将用于执行 jenkins_script
。
jenkins_job_dsl_temp_job_name: C4lpe7GMX8S0pdZV6RWbKAkBfKWCPAOgAL9MGL03
临时任务的名称,将用于 DSL 脚本的执行。应该保持为复杂的字符字符串,以避免与实际任务名称冲突。
jenkins_job_dsl_content: |
job('dsl-example-job') {
steps {
shell('echo Hello world!')
}
}
将要运行的 DSL 脚本。可以像示例中那样直接指定,也可以使用类似 jenkins_job_dsl_content: "{{ lookup('file', 'files/myDslScript.groovy') }}"
的方式,使你的剧本更整洁。
jenkins_job_dsl_temp_job_run: true
是否运行新创建的临时任务。如果你对任务的运行时间或方式有其他计划,可以将此设置为禁用。
jenkins_job_dsl_temp_job_delete: true
运行后是否删除临时任务。如果你还没有获得想要的结果并希望查看 Jenkins 中的构建日志,可以将此设置为禁用。如果 jenkins_job_dsl_temp_job_run
为 false,则此项不执行任何操作。
jenkins_job_dsl_temp_job_running_checks: 10
在删除任务之前,角色应该检查任务是否停止运行的次数。角色每秒执行一次检查,因此此数量也是检查超时的限制,单位为秒。如果 jenkins_job_dsl_temp_job_delete
为 false,则此项不执行任何操作。
示例剧本
- hosts: servers
roles:
- { role: meierw.jenkins_job_dsl_exec }
许可证
MIT
作者信息
- 作者: Walter Meier