community.general.jenkins_plugin модуль — Добавление или удаление плагинов Jenkins
Примечание
Этот модуль входит в коллекцию community.general (версия 9.5.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general.
Для использования в плейбуке укажите: community.general.jenkins_plugin.
Обзор
- Модуль Ansible, который помогает управлять плагинами Jenkins.
Параметры
Параметр | Комментарии |
|---|---|
attributes псевдонимы: attr строка | Атрибуты, которые должен иметь полученный объект файловой системы. Чтобы получить поддерживаемые флаги, см. страницу руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и отображается lsattr. Оператор |
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 в ОС. По умолчанию: |
selevel строка | Часть уровня SELinux контекста объекта файловой системы. Это атрибут MLS/MCS, иногда известный как При установке в |
serole строка | Часть роли SELinux контекста объекта файловой системы. При установке в |
setype строка | Часть типа SELinux контекста объекта файловой системы. При установке в |
seuser строка | Часть пользователя SELinux контекста объекта файловой системы. По умолчанию используется политика При установке в |
state строка | Желаемое состояние плагина. Если установлено Варианты:
|
timeout целое число | Тайм-аут соединения с сервером в секундах. По умолчанию: |
unsafe_writes boolean | Влияет на то, когда использовать атомарную операцию для предотвращения повреждения данных или несогласованных чтений из объекта целевой файловой системы. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из объектов целевой файловой системы, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Одним из примеров являются объекты файловой системы, смонтированные Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления объектов файловой системы при сбое атомарных операций (однако он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. Варианты:
|
update_json_url_segment list / elements=string добавлен в community.general 3.3.0 | Список сегментов URL для получения файла json центра обновлений. По умолчанию: |
updates_expiration integer | Количество секунд, по истечении которых загружается новая копия файла Установите значение По умолчанию: |
updates_url list / elements=string | Список базовых URL-адресов для получения Это может быть список с версии community.general 3.3.0. По умолчанию: |
url string | URL сервера Jenkins. По умолчанию: |
url_password string | Пароль для использования в аутентификации HTTP basic. Если параметр |
url_username string | Имя пользователя для использования в аутентификации HTTP basic. Этот параметр может быть использован без |
use_gssapi boolean добавлен в ansible-core 2.11 | Использовать GSSAPI для выполнения аутентификации, как правило, для аутентификации Kerberos или Kerberos через Negotiate. Требуется установка Python библиотеки gssapi. Данные для GSSAPI могут быть указаны с Аутентификация NTLM не поддерживается, даже если механизм GSSAPI для NTLM установлен. Варианты:
|
use_proxy boolean | Если Варианты:
|
validate_certs boolean | Если Это следует использовать только на контролируемых сайтах с использованием самозаверяющих сертификатов. Варианты:
|
version string | Номер версии плагина. Если этот параметр указан, все зависимости плагина должны быть установлены вручную. Проверка корректной установки может занять больше времени, особенно если указан конкретный номер версии. Укажите версию в кавычках, чтобы предотвратить интерпретацию значения как числа с плавающей запятой. Например, если |
versioned_plugins_url_segments list / elements=string добавлен в community.general 3.3.0 | Путь внутри По умолчанию: |
with_dependencies boolean | Определяет, нужно ли устанавливать зависимости плагина. Этот параметр имеет эффект только если Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: отсутствует | В режиме сравнения вернет подробности о том, что изменилось (или, возможно, требует изменения в |
Примечания
Примечание
- Установка плагина должна выполняться от пользователя root или от пользователя, который владеет файлами плагина на диске. Только если плагин еще не установлен и версия не указана, выполняется установка через API, которая требует только учетных данных веб-интерфейса.
- Необходимо уведомить обработчик или вызвать модуль ansible.builtin.service, чтобы перезапустить службу Jenkins после установки нового плагина.
- Фиксация работает только если плагин установлен, и служба Jenkins успешно перезапущена после установки плагина.
- Невозможно запустить модуль удалённо, изменив параметр
urlдля указания сервера Jenkins. Модуль должен использоваться на хосте, где работает Jenkins, так как ему нужен прямой доступ к файлам плагина.
Примеры
- 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 строка | название плагина Возвращается: success Пример: |
state строка | состояние целевого объекта после выполнения Возвращается: success Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/jenkins_plugin_module.html