jenkins_plugin - Добавить или удалить плагин Jenkins
Новая версия с 2.2.
Обзор
- Модуль Ansible, который помогает управлять плагинами Jenkins.
Параметры
| параметр | обязательно | по умолчанию | выбор | комментарии |
|---|---|---|---|---|
| group | нет | jenkins | Имя группы Jenkins в ОС. | |
| jenkins_home | нет | /var/lib/jenkins | Каталог домашней директории пользователя Jenkins. | |
| mode | нет | 0664 | Режим файла, применяемый к плагинам с версиями. | |
| name | да | Имя плагина. | ||
| owner | нет | jenkins | Имя пользователя Jenkins в ОС. | |
| params | нет | Параметр, позволяющий пользователю перезаписать любые другие параметры. Для удаления параметра установите его значение в null. Изменено в 2.5.0, 2.4.1, 2.3.3, для поднятия ошибки, если url_password указан в params. Используйте фактический аргумент url_password. | ||
| state | нет | present |
| Желаемое состояние плагина. Если latest установлено, проверка на наличие новой версии будет выполняться каждый раз. Это подходит для поддержания плагина в актуальном состоянии. |
| timeout | нет | 30 | Таймаут соединения с сервером в секундах. | |
| updates_expiration | нет | 86400 | Количество секунд, после которых загружается новая копия файла update-center.json. Это используется для того, чтобы избежать необходимости загрузки плагина для расчета его контрольной суммы, когда latest указан.Установите в 0, если не нужно использовать кеш-файл. В этом случае файл плагина всегда загружается для расчета контрольной суммы при latest. | |
| updates_url | нет | https://updates.jenkins-ci.org | URL Центра обновления. Используется в качестве базового URL для загрузки плагинов и файла JSON update-center.json. | |
| url | нет | http://localhost:8080 | URL сервера Jenkins. | |
| version | нет | Номер версии плагина. Если этот параметр указан, все зависимости плагина должны быть установлены вручную. Это может занять больше времени для проверки, что установлена правильная версия. Особенно это актуально, если указан конкретный номер версии. Укажите версию в кавычках, чтобы предотвратить интерпретацию значения как числа с плавающей точкой. Например, если 1.20 будет без кавычек, то это станет 1.2. | ||
| with_dependencies | нет | yes |
| Определяет, устанавливать ли зависимости плагина. Этот параметр действует только в том случае, если параметр version не определен. |
Примеры
- 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
#
# my_jenkins_params:
# url_username: admin
#
- name: Install plugin
jenkins_plugin:
name: build-pipeline-plugin
params: "{{ my_jenkins_params }}"
url_password: p4ssw0rd
url: http://localhost:8888
# Note that url_password **can not** be placed in params as params could end up in a log file
#
# 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 }}"
Возвращаемые значения
Общие возвращаемые значения описаны здесь Возвращаемые значения, следующие поля уникальны для этого модуля:
| имя | описание | возвращаемое | тип | пример |
|---|---|---|---|---|
| plugin | Имя плагина | успех | строка | build-pipeline-plugin |
| state | состояние цели после выполнения | успех | строка | present |
Примечания
Примечание
- Установка плагина должна выполняться под пользователем root или пользователем, который владеет файлами плагина на диске. Только если плагин еще не установлен и не указана версия, выполняется установка через API, которая требует только учетных данных веб-интерфейса.
- Необходимо уведомить обработчик или вызвать модуль service для перезапуска сервиса Jenkins после установки нового плагина.
- Фиксация работает только в том случае, если плагин установлен, и сервис Jenkins успешно перезапущен после установки плагина.
- Невозможно запустить модуль удаленно, изменив параметр url для указания на сервер Jenkins. Модуль должен использоваться на хосте, где работает Jenkins, так как ему нужен прямой доступ к файлам плагина.
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Для получения помощи в разработке модулей, если у вас возникнет такое желание, прочитайте Информацию о сообществе и содействие, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/jenkins_plugin_module.html