wcm_io_devops.jenkins_configuration_as_code
wcm_io_devops.jenkins_configuration_as_code
This role handles the installation, setup, and updating of the Jenkins Configuration as Code Plugin (JCasC).
Tasks:
- Install JCasC plugin(s)
- Set the path for the JCasC plugin
- Deploy JCasC configuration files
- Reload JCasC settings
Requirements
This role requires Ansible version 2.7 or higher and a running Jenkins instance.
Role Variables
Here are the available variables with their default values:
jenkins_casc_admin_username: admin
Jenkins admin username.jenkins_casc_admin_password: admin
Jenkins admin password.jenkins_casc_owner: jenkins
Linux user for Jenkins.jenkins_casc_group: "{{ jenkins_casc_owner }}"
Linux group for the Jenkins user.jenkins_casc_jenkins_hostname: localhost
Hostname of the Jenkins instance.jenkins_casc_jenkins_port: 8080
HTTP port for the Jenkins instance.jenkins_casc_jenkins_url_prefix: ""
URL prefix for the Jenkins instance, like when running in Tomcat.jenkins_casc_jenkins_base_url: "http://{{ jenkins_casc_jenkins_hostname }}:{{ jenkins_casc_jenkins_port }}{{ jenkins_casc_jenkins_url_prefix }}"
The base URL for the Jenkins instance.jenkins_casc_jenkins_home: "/var/lib/jenkins"
Path to the Jenkins Configuration as Code directory with YAML files.jenkins_casc_config_path: "{{ jenkins_casc_jenkins_home }}/jcasc"
Path for the JCasC configuration files.jenkins_casc_config_path_configure: false
Setting this to true enables the configuration path setup. If the path changes, JCasC will reload immediately.jenkins_casc_config_fileglobs: []
Configuration files or templates to upload. If any changes, the configuration will reload.jenkins_casc_config_unmanaged_delete: false
If set to true, removes files not listed injenkins_casc_config_fileglobs
from the config path. This only happens if at least one file was uploaded.jenkins_casc_script_timeout: 60
Timeout for Jenkins script tasks, in seconds.jenkins_casc_plugins_present:
- name: configuration-as-code
version: "1.3" - name: configuration-as-code-support
version: "1.3"
Required plugins for configuration as code.
- name: configuration-as-code
jenkins_casc_secrets_dir: /var/jenkins_secrets
Directory for storing credentials on the Jenkins master.jenkins_casc_secrets_unmanaged_delete: true
If true, deletes existing but undefined credentials in the secrets directory. This only happens if at least one secret is uploaded.jenkins_casc_secrets: []
List of credential pairs withid
andvalue
. Use${id}
to reference in JCasC.
Dependencies
This role relies on the wcm_io_devops.jenkins_plugins role for plugin management.
It also uses wcm_io_devops.jenkins_facts to get the list of installed plugins.
Example Playbook
This playbook sets the JCasC configuration path to /var/lib/jenkins/jcasc-folder
and uploads all .yml
and .yaml
files from file/jcasc/my-jenkins/
into that folder.
- name: "Deploy jcasc"
hosts: jenkins
vars:
jenkins_casc_config_path_configure: true
jenkins_casc_config_path: "/var/lib/jenkins/jcasc-folder"
jenkins_casc_config_fileglobs:
- file/jcasc/my-jenkins/*.yml
- file/jcasc/my-jenkins/*.yaml
roles:
- wcm_io_devops.jenkins_configuration_as_code
License
Apache 2.0
Configures Jenkins configuration as code plugin (jcasc).
ansible-galaxy install wcm_io_devops.jenkins_configuration_as_code