jenkins_configuration_as_code
wcm_io_devops.jenkins_configuration_as_code
Эта роль управляет установкой, настройкой и обновлением плагина Jenkins Configuration as Code Plugin (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 }}"
Группа Linux пользователя Jenkins.
jenkins_casc_jenkins_hostname: localhost
Имя хоста экземпляра Jenkins.
jenkins_casc_jenkins_port: 8080
HTTP порт экземпляра Jenkins.
jenkins_casc_jenkins_url_prefix: ""
Префикс URL экземпляра Jenkins, например, если работает в Tomcat.
jenkins_casc_jenkins_base_url: "http://{{ jenkins_casc_jenkins_hostname }}:{{ jenkins_casc_jenkins_port }}{{ jenkins_casc_jenkins_url_prefix }}"
Базовый URL экземпляра Jenkins.
jenkins_casc_jenkins_home: "/var/lib/jenkins"
Путь к каталогу Jenkins JCasC, содержащему YAML файлы для конфигурации.
jenkins_casc_config_path: "{{ jenkins_casc_jenkins_home }}/jcasc"
Путь к каталогу Jenkins JCasC, содержащему YAML файлы для конфигурации.
jenkins_casc_config_path_configure: false
Включает / Выключает настройку пути конфигурации. Когда это значение установлено в true, путь JCasC в экземпляре Jenkins устанавливается как 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_script в секундах.
jenkins_casc_plugins_present:
- name: configuration-as-code
version: "1.3"
- name: configuration-as-code-support
version: "1.3"
Плагины, необходимые для configuration-as-code.
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/значение учетных данных. id
затем можно ссылаться в JCasC с помощью ${id}
как ссылка на значение.
Зависимости
Эта роль зависит от роли wcm_io_devops.jenkins_plugins для установки/удаления плагинов.
В качестве транзитивной зависимости эта роль использует wcm_io_devops.jenkins_facts для получения списка установленных плагинов из экземпляра Jenkins.
Пример плейбука
Этот плейбук установит путь к конфигурации JCasC на
/var/lib/jenkins/jcasc-folder
и развернет все .yml
и
.yaml
файлы, найденные в file/jcasc/my-jenkins/
, в этот каталог.
- 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
ansible-galaxy install wcm-io-devops/ansible-jenkins-configuration-as-code