Модуль community.general.jenkins_plugin — добавление или удаление плагина Jenkins
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.general.
Чтобы использовать её в плейбуке, укажите: community.general.jenkins_plugin.
Краткое описание
- Модуль Ansible для управления плагинами Jenkins.
Параметры
Параметр | Комментарии |
|---|---|
attributes псевдонимы: attr строка | Атрибуты, которые должен иметь результирующий объект файловой системы. Список поддерживаемых флагов см. на странице руководства Эта строка должна содержать атрибуты в том же порядке, в котором они отображаются командой По умолчанию предполагается оператор |
client_cert путь | Файл цепочки сертификатов в формате PEM для аутентификации SSL-клиента. Этот файл также может содержать ключ. Если ключ включён в файл, параметр |
client_key путь | Файл в формате PEM, содержащий закрытый ключ для аутентификации SSL-клиента. Если |
force логический | Если Варианты:
|
force_basic_auth логический | Передавать учётные данные, указанные с помощью Варианты:
|
group строка | GID или имя группы Jenkins в ОС. По умолчанию: |
http_agent строка | Значение заголовка для идентификации; обычно оно отображается в журналах веб-сервера. По умолчанию: |
jenkins_home путь | Домашний каталог пользователя Jenkins. По умолчанию: |
latest_plugins_url_segments список / элементы=строка добавлен в community.general 3.3.0 | Путь внутри По умолчанию: |
mode любой | Режим файла, применяемый к плагинам с указанной версией. По умолчанию: |
name строка / обязательный | Имя плагина. |
owner строка | UID или имя пользователя Jenkins в ОС. По умолчанию: |
plugin_versions_url_segment список / элементы=строка добавлен в community.general 11.2.0 | Список сегментов URL для получения JSON-файла с версиями плагинов. По умолчанию: |
selevel строка | Уровень контекста объекта файловой системы SELinux. Это атрибут MLS/MCS, иногда называемый Если задано значение |
serole строка | Роль контекста объекта файловой системы SELinux. Если задано значение |
setype строка | Тип контекста объекта файловой системы SELinux. Если задано значение |
seuser строка | Пользователь контекста объекта файловой системы SELinux. По умолчанию используется политика Если задано значение |
state строка | Требуемое состояние плагина. Если задано значение Варианты:
|
timeout целое число | Тайм-аут подключения к серверу в секундах. По умолчанию: |
unsafe_writes логический | Определяет, когда использовать атомарную операцию для предотвращения повреждения данных или несогласованного чтения целевого объекта файловой системы. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения целевых объектов файловой системы, однако в некоторых случаях конфигурация систем или их неисправности этому препятствуют. Например, объекты файловой системы, смонтированные Docker, нельзя атомарно обновить из контейнера — их можно записывать только небезопасным способом. Этот параметр позволяет Ansible при сбое атомарных операций использовать небезопасные методы обновления объектов файловой системы (однако он не заставляет Ansible выполнять небезопасную запись). ВАЖНО! Небезопасная запись подвержена состояниям гонки и может привести к повреждению данных. Варианты:
|
update_json_url_segment список / элементы=строка добавлен в community.general 3.3.0 | Список сегментов URL для получения JSON-файла центра обновлений. По умолчанию: |
updates_expiration целое число | Количество секунд, по истечении которых загружается новая копия файла Задайте значение По умолчанию: |
updates_url список / элементы=строка | Список базовых URL для получения Начиная с community.general 3.3.0 можно использовать список URL. По умолчанию: |
updates_url_password строка добавлен в community.general 11.2.0 | Если используется пользовательский Если для пользовательского |
updates_url_username строка добавлен в community.general 11.2.0 | Если используется пользовательский Если для пользовательского |
url строка | URL сервера Jenkins. По умолчанию: |
url_password строка | Пароль для HTTP-аутентификации Basic. Если параметр |
url_username строка | Имя пользователя для HTTP-аутентификации Basic. Этот параметр можно использовать без |
use_gssapi логический добавлен в ansible-core 2.11 | Использовать GSSAPI для аутентификации; обычно это Kerberos или Kerberos через аутентификацию Negotiate. Требуется установить библиотеку Python gssapi. Учётные данные для GSSAPI можно указать с помощью Аутентификация NTLM не поддерживается, даже если установлен механизм GSSAPI для NTLM. Варианты:
|
use_proxy логический | Если Варианты:
|
validate_certs логический | Если Используйте этот параметр только на сайтах под вашим контролем, где применяются самоподписанные сертификаты. Варианты:
|
version строка | Номер версии плагина. Если этот параметр указан, все зависимости плагина необходимо устанавливать вручную. Проверка установки нужной версии может занять больше времени. Особенно это касается случаев, когда указан конкретный номер версии. Заключите версию в кавычки, чтобы значение не было интерпретировано как число с плавающей запятой. Например, если |
versioned_plugins_url_segments список / элементы=строка добавлен в community.general 3.3.0 | Путь внутри По умолчанию: |
with_dependencies логический | Определяет, устанавливать ли зависимости плагина. В предыдущих версиях этот параметр не действовал, если была задана конкретная Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: нет | В режиме diff возвращает сведения об изменениях (или возможных изменениях в |
Примечания
Примечание
- Установку плагина следует выполнять от имени root или того же пользователя, которому принадлежат файлы плагина на диске. Если плагин ещё не установлен и версия не указана, установка выполняется через API; для неё достаточно учётных данных веб-интерфейса.
- После установки нового плагина необходимо вызвать обработчик или модуль ansible.builtin.service, чтобы перезапустить службу Jenkins.
- Закрепление версии работает только в том случае, если плагин установлен и после его установки служба Jenkins была успешно перезапущена.
- Нельзя запустить модуль удалённо, изменив параметр
urlи указав сервер Jenkins. Модуль необходимо запускать на узле, где работает Jenkins, поскольку ему нужен прямой доступ к файлам плагинов. - При использовании пользовательского
updates_urlубедитесь, что URL предоставляет файлplugin-versions.json. Этот файл должен содержать метаданные всех доступных версий плагинов для разрешения совместимости версий. Формат файла должен совпадать с форматом файла центра обновлений Jenkins (https://updates.jenkins.io/current/plugin-versions.json).
Примеры
- name: Install plugin
community.general.jenkins_plugin:
name: build-pipeline-plugin
- name: Install plugin without its dependencies
community.general.jenkins_plugin:
name: build-pipeline-plugin
with_dependencies: false
- name: Make sure the plugin is always up-to-date
community.general.jenkins_plugin:
name: token-macro
state: latest
- name: Install specific version of the plugin
community.general.jenkins_plugin:
name: token-macro
version: "1.15"
- name: Pin the plugin
community.general.jenkins_plugin:
name: token-macro
state: pinned
- name: Unpin the plugin
community.general.jenkins_plugin:
name: token-macro
state: unpinned
- name: Enable the plugin
community.general.jenkins_plugin:
name: token-macro
state: enabled
- name: Disable the plugin
community.general.jenkins_plugin:
name: token-macro
state: disabled
- name: Uninstall plugin
community.general.jenkins_plugin:
name: build-pipeline-plugin
state: absent
#
# Example of how to authenticate
#
- name: Install plugin
community.general.jenkins_plugin:
name: build-pipeline-plugin
url_username: admin
url_password: p4ssw0rd
url: http://localhost:8888
#
# Example of how to authenticate with serverless deployment
#
- name: Update plugins on ECS Fargate Jenkins instance
community.general.jenkins_plugin:
# plugin name and version
name: ws-cleanup
version: '0.45'
# Jenkins home path mounted on ec2-helper VM (example)
jenkins_home: "/mnt/{{ jenkins_instance }}"
# matching the UID/GID to one in official Jenkins image
owner: 1000
group: 1000
# Jenkins instance URL and admin credentials
url: "https://{{ jenkins_instance }}.com/"
url_username: admin
url_password: p4ssw0rd
# make module work from EC2 which has local access
# to EFS mount as well as Jenkins URL
delegate_to: ec2-helper
vars:
jenkins_instance: foobar
#
# 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: true
build-pipeline-plugin:
version: "1.4.9"
pinned: false
enabled: true
tasks:
- name: Install plugins without a specific version
community.general.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
community.general.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
ansible.builtin.set_fact:
jenkins_restart_required: false
- name: Check if restart is required by any of the versioned plugins
ansible.builtin.set_fact:
jenkins_restart_required: true
when: item.changed
with_items: "{{ my_jenkins_plugin_versioned.results }}"
- name: Check if restart is required by any of the unversioned plugins
ansible.builtin.set_fact:
jenkins_restart_required: true
when: item.changed
with_items: "{{ my_jenkins_plugin_unversioned.results }}"
- name: Restart Jenkins if required
ansible.builtin.service:
name: jenkins
state: restarted
when: jenkins_restart_required
- name: Wait for Jenkins to start up
ansible.builtin.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
ansible.builtin.set_fact:
jenkins_restart_required: false
when: jenkins_restart_required
- name: Plugin pinning
community.general.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
community.general.jenkins_plugin:
name: "{{ item.key }}"
state: "{{ 'enabled' if item.value['enabled'] else 'disabled'}}"
when: >
'enabled' in item.value
with_dict: "{{ my_jenkins_plugins }}"
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
plugin строка | Имя плагина. Возвращается: при успешном выполнении Пример: |
state строка | Состояние целевого объекта после выполнения. Возвращается: при успешном выполнении Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/jenkins_plugin_module.html