wcm_io_devops.jenkins_configuration_as_code

CI

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 in jenkins_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.
  • 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 with id and value. 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

Informazioni sul progetto

Configures Jenkins configuration as code plugin (jcasc).

Installa
ansible-galaxy install wcm_io_devops.jenkins_configuration_as_code
Licenza
apache-2.0
Download
12.9k
Proprietario
Tools for Configuration Management and Deployment