Spec-Zone.ru › Ansible 2.11

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

Примечание

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

Для его установки используйте: 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
строка
    Варианты:
  • absent
  • present ←
  • pinned
  • unpinned
  • enabled
  • disabled
  • latest
Желаемое состояние плагина.
Если 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-аутентификации по принципу «имя пользователя — пароль».
Если параметр url_username не указан, параметр url_password не будет использован.
url_username
строка
Имя пользователя для использования в HTTP-аутентификации по принципу «имя пользователя — пароль».
Этот параметр может использоваться без url_password для сайтов, допускающих пустые пароли
use_gssapi
логическое
добавлен в 2.11 ansible.builtin
    Варианты:
  • нет ←
  • да
Использовать GSSAPI для выполнения аутентификации, как правило, для аутентификации Kerberos или Kerberos через Negotiate.
Требуется установка Python-библиотеки gssapi.
Учетные данные для GSSAPI можно указать с помощью url_username/url_password или с помощью переменной окружения GSSAPI KRB5CCNAME, которая указывает на пользовательский кеш учетных данных Kerberos.
Аутентификация NTLM not поддерживается даже если механизм GSSAPI для NTLM установлен.
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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/jenkins_plugin_module.html

Spec-Zone.ru

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