jenkins_script - Executes a groovy script in the jenkins instance

New in version 2.3.

Synopsis

Parameters

Parameter Choices/Defaults Comments
args
A dict of key-value pairs used in formatting the script using string.Template (see https://docs.python.org/2/library/string.html#template-strings).
password
The password to connect to the jenkins server with.
script
required
The groovy script to be executed. This gets passed as a string Template if args is defined.
timeout
(added in 2.4)
Default:
10
The request timeout in seconds
url Default:
http://localhost:8080
The jenkins server to execute the script against. The default is a local jenkins instance that is not being proxied through a webserver.
user
The username to connect to the jenkins server with.
validate_certs
bool
    Choices:
  • no
  • yes ←
If set to no, the SSL certificates will not be validated. This should only set to no used on personally controlled sites using self-signed certificates as it avoids verifying the source site.

Notes

Note

  • Since the script can do anything this does not report on changes. Knowing the script is being run it’s important to set changed_when for the ansible output to be clear on any alterations made.

Examples

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

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

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

- name: interacting with an untrusted HTTPS connection
  jenkins_script:
    script: "println(Jenkins.instance.pluginManager.plugins)"
    user: admin
    password: admin
    url: https://localhost
    validate_certs: no

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
output
string
success
Result of script

Sample:
Result: true


Status

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

Maintenance

This module is flagged as community which means that it is maintained by the Ansible Community. See Module Maintenance & Support for more info.

For a list of other modules that are also maintained by the Ansible Community, see here.

Author

  • James Hogarth (@hogarthj)

Hint

If you notice any issues in this documentation you can edit this document to improve it.