Spec-Zone.ru › Ansible

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 не требуется.

client_key

путь

Файл в формате PEM, содержащий ваш закрытый ключ, используемый для аутентификации SSL клиента.

Если client_cert содержит как сертификат, так и ключ, этот параметр не требуется.

force

логическое

Если yes, не получать кэшированную копию.

Варианты:

  • false ← (по умолчанию)
  • true

force_basic_auth

логическое

Указанные с помощью url_username и url_password учетные данные должны передаваться в заголовке HTTP.

Варианты:

  • false ← (по умолчанию)
  • true

group

строка

GID или имя группы Jenkins в ОС.

По умолчанию: "jenkins"

http_agent

строка

Заголовок для идентификации, обычно отображается в журналах веб-сервера.

По умолчанию: "ansible-httpget"

jenkins_home

путь

Домашний каталог пользователя Jenkins.

По умолчанию: "/var/lib/jenkins"

latest_plugins_url_segments

список / элементы=строка

добавлен в community.general 3.3.0

Путь внутри updates_url, чтобы получить последние плагины.

По умолчанию: ["latest"]

mode

любой

Режим файла, применяемый к плагинам с версиями.

По умолчанию: "0644"

name

строка / обязательно

Название плагина.

owner

строка

UID или имя пользователя Jenkins в ОС.

По умолчанию: "jenkins"

selevel

строка

Часть уровня SELinux контекста объекта файловой системы.

Это атрибут MLS/MCS, иногда известный как range.

При установке в _default, будет использоваться часть политики level, если она доступна.

serole

строка

Часть роли SELinux контекста объекта файловой системы.

При установке в _default, будет использоваться часть политики role, если она доступна.

setype

строка

Часть типа SELinux контекста объекта файловой системы.

При установке в _default, будет использоваться часть политики type, если она доступна.

seuser

строка

Часть пользователя SELinux контекста объекта файловой системы.

По умолчанию используется политика system, где это применимо.

При установке в _default, будет использоваться часть политики user, если она доступна.

state

строка

Желаемое состояние плагина.

Если установлено latest, проверка на наличие новой версии будет выполняться каждый раз. Это подходит для поддержания плагина в актуальном состоянии.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)
  • "pinned"
  • "unpinned"
  • "enabled"
  • "disabled"
  • "latest"

timeout

целое число

Тайм-аут соединения с сервером в секундах.

По умолчанию: 30

unsafe_writes

boolean

Влияет на то, когда использовать атомарную операцию для предотвращения повреждения данных или несогласованных чтений из объекта целевой файловой системы.

По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из объектов целевой файловой системы, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Одним из примеров являются объекты файловой системы, смонтированные Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом.

Этот параметр позволяет Ansible перейти к небезопасным методам обновления объектов файловой системы при сбое атомарных операций (однако он не заставляет Ansible выполнять небезопасные записи).

ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.

Варианты:

  • false ← (по умолчанию)
  • true

update_json_url_segment

list / elements=string

добавлен в community.general 3.3.0

Список сегментов URL для получения файла json центра обновлений.

По умолчанию: ["update-center.json", "updates/update-center.json"]

updates_expiration

integer

Количество секунд, по истечении которых загружается новая копия файла update-center.json. Это используется для избежания необходимости загрузки плагина для вычисления его контрольной суммы, когда указано state=latest.

Установите значение 0, если не нужно использовать кэшированный файл. В этом случае файл плагина всегда будет загружаться для вычисления контрольной суммы, когда указано state=latest.

По умолчанию: 86400

updates_url

list / elements=string

Список базовых URL-адресов для получения update-center.json, и прямых файлов плагинов.

Это может быть список с версии community.general 3.3.0.

По умолчанию: ["https://updates.jenkins.io", "http://mirrors.jenkins.io"]

url

string

URL сервера Jenkins.

По умолчанию: "http://localhost:8080"

url_password

string

Пароль для использования в аутентификации HTTP basic.

Если параметр url_username не указан, параметр url_password не будет использован.

url_username

string

Имя пользователя для использования в аутентификации HTTP basic.

Этот параметр может быть использован без url_password для сайтов, разрешающих пустые пароли.

use_gssapi

boolean

добавлен в ansible-core 2.11

Использовать GSSAPI для выполнения аутентификации, как правило, для аутентификации Kerberos или Kerberos через Negotiate.

Требуется установка Python библиотеки gssapi.

Данные для GSSAPI могут быть указаны с url_username/url_password или с переменной окружения GSSAPI KRB5CCNAME, которая указывает на кастомный кэш учетных данных Kerberos.

Аутентификация NTLM не поддерживается, даже если механизм GSSAPI для NTLM установлен.

Варианты:

  • false ← (по умолчанию)
  • true

use_proxy

boolean

Если no, прокси не будет использован, даже если он определен в переменной окружения на целевых хостах.

Варианты:

  • false
  • true ← (по умолчанию)

validate_certs

boolean

Если no, сертификаты SSL не будут проверены.

Это следует использовать только на контролируемых сайтах с использованием самозаверяющих сертификатов.

Варианты:

  • false
  • true ← (по умолчанию)

version

string

Номер версии плагина.

Если этот параметр указан, все зависимости плагина должны быть установлены вручную.

Проверка корректной установки может занять больше времени, особенно если указан конкретный номер версии.

Укажите версию в кавычках, чтобы предотвратить интерпретацию значения как числа с плавающей запятой. Например, если 1.20 будет без кавычек, оно станет 1.2.

versioned_plugins_url_segments

list / elements=string

добавлен в community.general 3.3.0

Путь внутри updates_url для получения конкретной версии плагинов.

По умолчанию: ["download/plugins", "plugins"]

with_dependencies

boolean

Определяет, нужно ли устанавливать зависимости плагина.

Этот параметр имеет эффект только если version не определен.

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может работать в режиме check_mode и возвращать прогнозируемый статус изменения без модификации целевого объекта.

diff_mode

Поддержка: отсутствует

В режиме сравнения вернет подробности о том, что изменилось (или, возможно, требует изменения в check_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

Пример: "build-pipeline-plugin"

state

строка

состояние целевого объекта после выполнения

Возвращается: success

Пример: "present"

Авторы

  • Jiri Tyr (@jtyr)

Ссылки на коллекцию

  • Система отслеживания ошибок
  • Репозиторий (исходные коды)
  • Задать вопрос
  • Отправить отчет об ошибке
  • Запросить новую функцию
  • Связь

© 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

Spec-Zone.ru

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