community.general.jenkins_job – Manage jenkins jobs

Note

This plugin is part of the community.general collection (version 4.2.0).

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_job.

Synopsis

  • Manage Jenkins jobs by using Jenkins REST API.

Requirements

The below requirements are needed on the host that executes this module.

  • python-jenkins >= 0.4.12

Parameters

Parameter Choices/Defaults Comments
config
string
config in XML format.
Required if job does not yet exist.
Mutually exclusive with enabled.
Considered if state=present.
enabled
boolean
    Choices:
  • no
  • yes
Whether the job should be enabled or disabled.
Mutually exclusive with config.
Considered if state=present.
name
string / required
Name of the Jenkins job.
password
string
Password to authenticate with the Jenkins server.
state
string
    Choices:
  • present ←
  • absent
Attribute that specifies if the job has to be created or deleted.
token
string
API token used to authenticate alternatively to password.
url
string
Default:
"http://localhost:8080"
URL where the Jenkins server is accessible.
user
string
User to authenticate with the Jenkins server.
validate_certs
boolean
added in 2.3.0 of community.general
    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.
The python-jenkins library only handles this by using the environment variable PYTHONHTTPSVERIFY.

Examples

- name: Create a jenkins job using basic authentication
  community.general.jenkins_job:
    config: "{{ lookup('file', 'templates/test.xml') }}"
    name: test
    password: admin
    url: http://localhost:8080
    user: admin

- name: Create a jenkins job using the token
  community.general.jenkins_job:
    config: "{{ lookup('template', 'templates/test.xml.j2') }}"
    name: test
    token: asdfasfasfasdfasdfadfasfasdfasdfc
    url: http://localhost:8080
    user: admin

- name: Delete a jenkins job using basic authentication
  community.general.jenkins_job:
    name: test
    password: admin
    state: absent
    url: http://localhost:8080
    user: admin

- name: Delete a jenkins job using the token
  community.general.jenkins_job:
    name: test
    token: asdfasfasfasdfasdfadfasfasdfasdfc
    state: absent
    url: http://localhost:8080
    user: admin

- name: Disable a jenkins job using basic authentication
  community.general.jenkins_job:
    name: test
    password: admin
    enabled: False
    url: http://localhost:8080
    user: admin

- name: Disable a jenkins job using the token
  community.general.jenkins_job:
    name: test
    token: asdfasfasfasdfasdfadfasfasdfasdfc
    enabled: False
    url: http://localhost:8080
    user: admin

Return Values

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

Key Returned Description
enabled
boolean
success
Whether the jenkins job is enabled or not.

Sample:
True
name
string
success
Name of the jenkins job.

Sample:
test-job
state
string
success
State of the jenkins job.

Sample:
present
url
string
success
Url to connect to the Jenkins server.

Sample:
https://jenkins.mydomain.com
user
string
success
User used for authentication.

Sample:
admin


Authors

  • Sergio Millan Rodriguez (@sermilrod)