Spec-Zone.ru › Ansible 2.10

community.general.jenkins_plugin – Добавление или удаление плагина Jenkins

Примечание

Этот плагин входит в состав коллекции community.general (версия 1.3.2).

Для его установки используйте: ansible-galaxy collection install community.general.

Для использования в книге задач укажите: community.general.jenkins_plugin.

  • Обзор
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Модуль Ansible, который помогает управлять плагинами Jenkins.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
attributes
строка
добавлен в 2.3 ansible.builtin
Атрибуты, которые должны иметь результирующий файл или каталог.
Для получения поддерживаемых флагов обратитесь к справке man для chattr на целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и при отображении командой lsattr.
Оператор = принимается по умолчанию, в противном случае необходимо включить операторы + или - в строку.

псевдонимы: attr
client_cert
путь
Файл цепочки сертификатов в формате PEM, используемый для аутентификации SSL клиента.
Этот файл также может содержать ключ, и если ключ включён, client_key не требуется.
client_key
путь
Файл в формате PEM, содержащий ваш закрытый ключ, используемый для аутентификации SSL клиента.
Если client_cert содержит как сертификат, так и ключ, этот параметр не требуется.
force
булево
    Варианты:
  • нет ←
  • да
Если yes не получить кешированную копию.
Псевдоним thirsty устарел и будет удален в версии 2.13.

псевдонимы: thirsty
force_basic_auth
булево
    Варианты:
  • нет ←
  • да
Указанные с помощью url_username и url_password учетные данные должны передаваться в заголовке HTTP.
group
строка
По умолчанию:
"jenkins"
Имя группы Jenkins в ОС.
http_agent
строка
По умолчанию:
"ansible-httpget"
Заголовок, по которому идентифицируются, обычно отображается в журналах веб-сервера.
jenkins_home
путь
По умолчанию:
"/var/lib/jenkins"
Домашний каталог пользователя Jenkins.
mode
сырой
По умолчанию:
"0644"
Режим файла, применяемый к плагинам с версиями.
name
строка / обязательно
Имя плагина.
owner
строка
По умолчанию:
"jenkins"
Имя пользователя Jenkins в ОС.
selevel
строка
Часть уровня SELinux контекста файла.
Это атрибут MLS/MCS, иногда известный как range.
При установке значения _default, будет использоваться часть политики level, если она доступна.
serole
строка
Часть роли контекста файла SELinux.
При установке значения _default, будет использоваться часть политики role, если она доступна.
setype
строка
Часть типа контекста файла SELinux.
При установке значения _default, будет использоваться часть политики type, если она доступна.
seuser
строка
Часть пользователя контекста файла SELinux.
По умолчанию используется политика system, где это применимо.
При установке значения _default, будет использоваться часть политики user, если она доступна.
state
строка
    Варианты:
  • отсутствует
  • наличие ←
  • закреплён
  • не закреплён
  • активен
  • выключен
  • последний
Желаемое состояние плагина.
Если параметр latest установлен, проверка на наличие новой версии будет выполняться каждый раз. Это подходит для поддержания плагина в актуальном состоянии.
timeout
целое число
По умолчанию:
30
Таймаут соединения с сервером в секундах.
unsafe_writes
булево
добавлен в 2.2 ansible.builtin
    Варианты:
  • нет ←
  • да
Влияет на использование атомарной операции для предотвращения повреждения данных или несогласованных чтений из целевого файла.
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настраиваются или просто выходят из строя таким образом, что это невозможно. Один из примеров — контейнеры Docker, смонтированные файлы, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только в небезопасном режиме.
Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции терпят неудачу (хотя это не принуждает Ansible к выполнению небезопасных записей).
ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.
updates_expiration
целое число
По умолчанию:
86400
Количество секунд после которого новая копия файла update-center.json скачивается. Это используется для того, чтобы избежать необходимости скачивания файла плагина для вычисления его контрольной суммы, когда latest указан.
Установите значение в 0 если не нужно использовать кеш-файл. В этом случае файл плагина всегда будет скачан для вычисления контрольной суммы, когда latest указан.
updates_url
строка
По умолчанию:
"https://updates.jenkins.io"
URL Центра обновлений.
Используется в качестве базового URL для скачивания плагинов и файла JSON update-center.json.
url
строка
По умолчанию:
"http://localhost:8080"
URL сервера Jenkins.
url_password
строка
Пароль для использования в аутентификации HTTP Basic.
Если параметр url_username не указан, параметр url_password не будет использоваться.
url_username
строка
Имя пользователя для использования в аутентификации HTTP Basic.
Этот параметр может быть использован без url_password для сайтов, которые допускают пустые пароли.
use_proxy
булево
    Варианты:
  • нет
  • да ←
Если no, прокси не будет использоваться, даже если он определён в переменной среды на целевых узлах.
validate_certs
булево
    Варианты:
  • нет
  • да ←
Если no, сертификаты SSL не будут проверяться.
Это следует использовать только на контролируемых вами сайтах с использованием самозаверенных сертификатов.
version
строка
Номер версии плагина.
Если этот параметр указан, все зависимости плагина необходимо установить вручную.
Проверка установки правильной версии может занять больше времени, особенно если указан конкретный номер версии.
Приведите версию в кавычки, чтобы предотвратить интерпретацию значения как числа с плавающей запятой. Например, если 1.20 будет без кавычек, он станет 1.2.
with_dependencies
булево
    Варианты:
  • нет
  • да ←
Определяет, следует ли устанавливать зависимости плагина.
Этот параметр вступает в силу только если version не определён.

Примечания

Примечание

  • Установка плагина должна выполняться от имени root или того же пользователя, который владеет файлами плагина на диске. Только если плагин ещё не установлен и не указана версия, выполняется установка через API, которая требует только учетных данных веб-интерфейса.
  • Необходимо уведомить обработчик или вызвать модуль 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: no

- 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 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
      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: no

    - name: Check if restart is required by any of the versioned plugins
      ansible.builtin.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
      ansible.builtin.set_fact:
        jenkins_restart_required: yes
      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: no
      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
строка
успех
имя плагина

Пример:
build-pipeline-plugin
state
строка
успех
состояние целевого объекта после выполнения

Пример:
present


Авторы

  • Jiri Tyr (@jtyr)

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/jenkins_plugin_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API