community.general.jenkins_script module – Executes a groovy script in the jenkins instance
Note
This module is part of the community.general collection (version 8.6.4).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.jenkins_script
.
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.
Aliases: web_infrastructure.jenkins_script
Parameters
Parameter |
Comments |
---|---|
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). |
|
The password to connect to the jenkins server with. |
|
The groovy script to be executed. This gets passed as a string Template if args is defined. |
|
The request timeout in seconds Default: |
|
The jenkins server to execute the script against. The default is a local jenkins instance that is not being proxied through a webserver. Default: |
|
The username to connect to the jenkins server with. |
|
If set to Choices:
|
Attributes
Attribute |
Support |
Description |
---|---|---|
Support: none |
Can run in |
|
Support: none |
Will return details on what has changed (or possibly needs changing in |
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
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://localhost
validate_certs: false # only do this when you trust the network!
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
Result of script Returned: success Sample: |