wcm_io_devops.jenkins_configuration_as_code
wcm_io_devops.jenkins_configuration_as_code
该角色管理Jenkins配置即代码插件(JCasC)的安装、配置和更新。
任务:
- 安装JCasC插件
- 配置JCasC插件的路径
- 部署JCasC配置文件
- 重新加载JCasC
要求
该角色需要Ansible 2.7或更高版本,并且目标实例上需要运行Jenkins。
角色变量
可用的变量及其默认值如下:
jenkins_casc_admin_username: admin
Jenkins管理员用户名。
jenkins_casc_admin_password: admin
Jenkins管理员密码。
jenkins_casc_owner: jenkins
Linux上Jenkins用户。
jenkins_casc_group: "{{ jenkins_casc_owner }}"
Jenkins用户的Linux组。
jenkins_casc_jenkins_hostname: localhost
Jenkins实例的主机名。
jenkins_casc_jenkins_port: 8080
Jenkins实例的HTTP端口。
jenkins_casc_jenkins_url_prefix: ""
Jenkins实例的URL前缀,例如在Tomcat中运行时的前缀。
jenkins_casc_jenkins_base_url: "http://{{ jenkins_casc_jenkins_hostname }}:{{ jenkins_casc_jenkins_port }}{{ jenkins_casc_jenkins_url_prefix }}"
Jenkins实例的基本URL。
jenkins_casc_jenkins_home: "/var/lib/jenkins"
包含配置所需YAML文件的Jenkins CACS目录路径。
jenkins_casc_config_path: "{{ jenkins_casc_jenkins_home }}/jcasc"
包含配置所需YAML文件的Jenkins CACS目录路径。
jenkins_casc_config_path_configure: false
启用/禁用配置路径的设置。当该值设置为true时,Jenkins实例中的JCasC路径将设置为jenkins_casc_config_path
。如果该路径与之前设置的路径不同,配置将直接重新加载。
jenkins_casc_config_fileglobs: []
要上传的配置文件/模板。如果此步骤的结果发生变化,配置将重新加载。
jenkins_casc_config_unmanaged_delete: false
控制是否删除在'jenkins_casc_config_path'中存在但未包含在'jenkins_casc_config_fileglobs'中的文件。只有在至少上传了一个文件到'jenkins_casc_config_path'时才会执行删除。
jenkins_casc_script_timeout: 60
Jenkins脚本任务的超时时间,单位为秒。
jenkins_casc_plugins_present:
- name: configuration-as-code
version: "1.3"
- name: configuration-as-code-support
version: "1.3"
配置即代码所需的插件。
jenkins_casc_secrets_dir: /var/jenkins_secrets
存储凭据的文件夹,路径将通过环境变量SECRETS进行配置。
jenkins_casc_secrets_unmanaged_delete: true
控制该角色是否删除在jenkins_casc_secrets_dir中存在但未定义的凭据。只有在至少上传了一个秘密到'jenkins_casc_secrets_dir'时才会执行删除。
jenkins_casc_secrets: []
# 示例:
# - id: credential-id
# value: credential-value
凭据的ID/值对列表。可以在JCasC中使用${id}
作为值引用。
依赖关系
该角色依赖于 wcm_io_devops.jenkins_plugins 角色进行插件的安装/卸载。
作为传递依赖,该角色使用 wcm_io_devops.jenkins_facts 角色从Jenkins实例中获取已安装插件的列表。
示例剧本
该剧本将把JCasC配置路径设置为/var/lib/jenkins/jcasc-folder
,并将file/jcasc/my-jenkins/
下找到的所有.yml
和.yaml
文件部署到该文件夹中。
- name: "部署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
许可证
Apache 2.0