community.general.jenkins_script 模块 – 在 Jenkins 实例中执行 Groovy 脚本

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定:community.general.jenkins_script

概要

  • jenkins_script 模块接收一个脚本以及要在脚本中使用的值的字典,并返回脚本运行的结果。

参数

参数

注释

args

字典

用于使用 string.Template 格式化脚本的键值对字典 (参见 https://docs.pythonlang.cn/2/library/string.html#template-strings)。

password

字符串

连接到 Jenkins 服务器的密码。

script

字符串 / 必需

要执行的 Groovy 脚本。如果定义了 args,则将其作为字符串模板传递。

timeout

整数

请求超时时间(秒)

默认值: 10

url

字符串

要针对其执行脚本的 Jenkins 服务器。默认值为未通过 Web 服务器代理的本地 Jenkins 实例。

默认值: "https://127.0.0.1:8080"

user

字符串

连接到 Jenkins 服务器的用户名。

validate_certs

布尔值

如果设置为 false,则不会验证 SSL 证书。仅当在使用自签名证书的个人控制站点上使用时,才应将其设置为 false,因为它避免了验证源站点。

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持:不支持

可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

处于差异模式时,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。

备注

注意

  • 由于脚本可以执行任何操作,因此不会报告更改。知道正在运行脚本很重要,因此需要为 ansible 输出设置 changed_when,以便清楚地了解所做的任何更改。

示例

- name: Obtaining a list of plugins
  community.general.jenkins_script:
    script: 'println(Jenkins.instance.pluginManager.plugins)'
    user: admin
    password: admin

- name: Setting master using a variable to hold a more complicate script
  ansible.builtin.set_fact:
    setmaster_mode: |
        import jenkins.model.*
        instance = Jenkins.getInstance()
        instance.setMode(${jenkins_mode})
        instance.save()

- name: Use the variable as the script
  community.general.jenkins_script:
    script: "{{ setmaster_mode }}"
    args:
      jenkins_mode: Node.Mode.EXCLUSIVE

- name: Interacting with an untrusted HTTPS connection
  community.general.jenkins_script:
    script: "println(Jenkins.instance.pluginManager.plugins)"
    user: admin
    password: admin
    url: https://127.0.0.1
    validate_certs: false  # only do this when you trust the network!

返回值

常见的返回值已在 此处 记录,以下是此模块特有的字段

描述

output

字符串

脚本的结果

返回:成功

示例: "Result: true"

作者

  • James Hogarth (@hogarthj)