# jenkins_script – Executes a groovy script in the jenkins instance

- Synopsis
- Parameters
- Notes
- Examples
- Return Values
- Status

## Synopsis

- The `jenkins_script` module takes a script plus a dict of values to use within the script and returns the result of the script being run.

## 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
boolean

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
      set_fact:
        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 not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- James Hogarth (@hogarthj)

Hint

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