ansible / ansible.builtin / v2.9.27 / module / jenkins_plugin Add or remove Jenkins plugin | "added in version" 2.2 of ansible.builtin" Authors: Jiri Tyr (@jtyr) preview | supported by communityansible.builtin.jenkins_plugin (v2.9.27) — module
pip
Install with pip install ansible==2.9.27
Ansible module which helps to manage Jenkins plugins.
- name: Install plugin jenkins_plugin: name: build-pipeline-plugin
- name: Install plugin without its dependencies jenkins_plugin: name: build-pipeline-plugin with_dependencies: no
- name: Make sure the plugin is always up-to-date jenkins_plugin: name: token-macro state: latest
- name: Install specific version of the plugin jenkins_plugin: name: token-macro version: "1.15"
- name: Pin the plugin jenkins_plugin: name: token-macro state: pinned
- name: Unpin the plugin jenkins_plugin: name: token-macro state: unpinned
- name: Enable the plugin jenkins_plugin: name: token-macro state: enabled
- name: Disable the plugin jenkins_plugin: name: token-macro state: disabled
- name: Uninstall plugin jenkins_plugin: name: build-pipeline-plugin state: absent
# # Example of how to authenticate # - name: Install plugin jenkins_plugin: name: build-pipeline-plugin url_username: admin url_password: p4ssw0rd url: http://localhost:8888
# # Example of a Play which handles Jenkins restarts during the state changes # - name: Jenkins Master play hosts: jenkins-master vars: my_jenkins_plugins: token-macro: enabled: yes build-pipeline-plugin: version: "1.4.9" pinned: no enabled: yes tasks: - name: Install plugins without a specific version jenkins_plugin: name: "{{ item.key }}" register: my_jenkins_plugin_unversioned when: > 'version' not in item.value with_dict: "{{ my_jenkins_plugins }}" - name: Install plugins with a specific version jenkins_plugin: name: "{{ item.key }}" version: "{{ item.value['version'] }}" register: my_jenkins_plugin_versioned when: > 'version' in item.value with_dict: "{{ my_jenkins_plugins }}" - name: Initiate the fact set_fact: jenkins_restart_required: no - name: Check if restart is required by any of the versioned plugins set_fact: jenkins_restart_required: yes when: item.changed with_items: "{{ my_jenkins_plugin_versioned.results }}" - name: Check if restart is required by any of the unversioned plugins set_fact: jenkins_restart_required: yes when: item.changed with_items: "{{ my_jenkins_plugin_unversioned.results }}" - name: Restart Jenkins if required service: name: jenkins state: restarted when: jenkins_restart_required - name: Wait for Jenkins to start up uri: url: http://localhost:8080 status_code: 200 timeout: 5 register: jenkins_service_status # Keep trying for 5 mins in 5 sec intervals retries: 60 delay: 5 until: > 'status' in jenkins_service_status and jenkins_service_status['status'] == 200 when: jenkins_restart_required - name: Reset the fact set_fact: jenkins_restart_required: no when: jenkins_restart_required - name: Plugin pinning jenkins_plugin: name: "{{ item.key }}" state: "{{ 'pinned' if item.value['pinned'] else 'unpinned'}}" when: > 'pinned' in item.value with_dict: "{{ my_jenkins_plugins }}" - name: Plugin enabling jenkins_plugin: name: "{{ item.key }}" state: "{{ 'enabled' if item.value['enabled'] else 'disabled'}}" when: > 'enabled' in item.value with_dict: "{{ my_jenkins_plugins }}"
url: default: http://localhost:8080 description: - URL of the Jenkins server. type: str mode: default: '0644' description: - File mode applied on versioned plugins. name: description: - Plugin name. required: true force: default: false description: - If V(yes) do not get a cached copy. type: bool group: default: jenkins description: - Name of the Jenkins group on the OS. owner: default: jenkins description: - Name of the Jenkins user on the OS. state: choices: - absent - present - pinned - unpinned - enabled - disabled - latest default: present description: - Desired plugin state. - If the C(latest) is set, the check for new version will be performed every time. This is suitable to keep the plugin up-to-date. timeout: default: 30 description: - Server connection timeout in secs. version: description: - Plugin version number. - If this option is specified, all plugin dependencies must be installed manually. - It might take longer to verify that the correct version is installed. This is especially true if a specific version number is specified. - Quote the version to prevent the value to be interpreted as float. For example if C(1.20) would be unquoted, it would become C(1.2). use_proxy: default: true description: - If V(no), it will not use a proxy, even if one is defined in an environment variable on the target hosts. type: bool client_key: description: - PEM formatted file that contains your private key to be used for SSL client authentication. - If O(client_cert) contains both the certificate and key, this option is not required. type: path http_agent: default: ansible-httpget description: - Header to identify as, generally appears in web server logs. type: str use_gssapi: default: false description: - Use GSSAPI to perform the authentication, typically this is for Kerberos or Kerberos through Negotiate authentication. - Requires the Python library L(gssapi,https://github.com/pythongssapi/python-gssapi) to be installed. - Credentials for GSSAPI can be specified with O(url_username)/O(url_password) or with the GSSAPI env var C(KRB5CCNAME) that specified a custom Kerberos credential cache. - NTLM authentication is B(not) supported even if the GSSAPI mech for NTLM has been installed. type: bool version_added: '2.11' version_added_collection: ansible.builtin client_cert: description: - PEM formatted certificate chain file to be used for SSL client authentication. - This file can also include the key as well, and if the key is included, O(client_key) is not required. type: path updates_url: default: https://updates.jenkins.io description: - URL of the Update Centre. - Used as the base URL to download the plugins and the I(update-center.json) JSON file. jenkins_home: default: /var/lib/jenkins description: - Home directory of the Jenkins user. url_password: description: - The password for use in HTTP basic authentication. - If the O(url_username) parameter is not specified, the O(url_password) parameter will not be used. type: str url_username: description: - The username for use in HTTP basic authentication. - This parameter can be used without O(url_password) for sites that allow empty passwords type: str validate_certs: default: true description: - If V(no), SSL certificates will not be validated. - This should only be used on personally controlled sites using self-signed certificates. type: bool force_basic_auth: default: false description: - Credentials specified with O(url_username) and O(url_password) should be passed in HTTP Header. type: bool with_dependencies: default: true description: - Defines whether to install plugin dependencies. - This option takes effect only if the I(version) is not defined. type: bool updates_expiration: default: 86400 description: - Number of seconds after which a new copy of the I(update-center.json) file is downloaded. This is used to avoid the need to download the plugin to calculate its checksum when C(latest) is specified. - Set it to C(0) if no cache file should be used. In that case, the plugin file will always be downloaded to calculate its checksum when C(latest) is specified.
plugin: description: plugin name returned: success sample: build-pipeline-plugin type: str state: description: state of the target, after execution returned: success sample: present type: str