Spec-Zone.ru › Ansible 2.4

jenkins_plugin - Добавить или удалить плагин Jenkins

Новая версия с 2.2.

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

Обзор

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

Параметры

параметр обязательно по умолчанию выбор комментарии
group
нет jenkins
Имя группы Jenkins в ОС.
jenkins_home
нет /var/lib/jenkins
Каталог домашней директории пользователя Jenkins.
mode
нет 0664
Режим файла, применяемый к плагинам с версиями.
name
да
Имя плагина.
owner
нет jenkins
Имя пользователя Jenkins в ОС.
params
нет
Параметр, позволяющий пользователю перезаписать любые другие параметры. Для удаления параметра установите его значение в null.
Изменено в 2.5.0, 2.4.1, 2.3.3, для поднятия ошибки, если url_password указан в params. Используйте фактический аргумент url_password.
state
нет present
  • absent
  • present
  • pinned
  • unpinned
  • enabled
  • disabled
  • latest
Желаемое состояние плагина.
Если latest установлено, проверка на наличие новой версии будет выполняться каждый раз. Это подходит для поддержания плагина в актуальном состоянии.
timeout
нет 30
Таймаут соединения с сервером в секундах.
updates_expiration
нет 86400
Количество секунд, после которых загружается новая копия файла update-center.json. Это используется для того, чтобы избежать необходимости загрузки плагина для расчета его контрольной суммы, когда latest указан.
Установите в 0, если не нужно использовать кеш-файл. В этом случае файл плагина всегда загружается для расчета контрольной суммы при latest.
updates_url
нет https://updates.jenkins-ci.org
URL Центра обновления.
Используется в качестве базового URL для загрузки плагинов и файла JSON update-center.json.
url
нет http://localhost:8080
URL сервера Jenkins.
version
нет
Номер версии плагина.
Если этот параметр указан, все зависимости плагина должны быть установлены вручную.
Это может занять больше времени для проверки, что установлена правильная версия. Особенно это актуально, если указан конкретный номер версии.
Укажите версию в кавычках, чтобы предотвратить интерпретацию значения как числа с плавающей точкой. Например, если 1.20 будет без кавычек, то это станет 1.2.
with_dependencies
нет yes
  • yes
  • no
Определяет, устанавливать ли зависимости плагина.
Этот параметр действует только в том случае, если параметр version не определен.

Примеры

- name: Install plugin
  jenkins_plugin:
    name: build-pipeline-plugin

- name: Install plugin without its dependencies
  jenkins_plugin:
    name: build-pipeline-plugin
    with_dependencies: no

- name: Make sure the plugin is always up-to-date
  jenkins_plugin:
    name: token-macro
    state: latest

- name: Install specific version of the plugin
  jenkins_plugin:
    name: token-macro
    version: "1.15"

- name: Pin the plugin
  jenkins_plugin:
    name: token-macro
    state: pinned

- name: Unpin the plugin
  jenkins_plugin:
    name: token-macro
    state: unpinned

- name: Enable the plugin
  jenkins_plugin:
    name: token-macro
    state: enabled

- name: Disable the plugin
  jenkins_plugin:
    name: token-macro
    state: disabled

- name: Uninstall plugin
  jenkins_plugin:
    name: build-pipeline-plugin
    state: absent

#
# Example of how to authenticate
#
# my_jenkins_params:
#   url_username: admin
#
- name: Install plugin
  jenkins_plugin:
    name: build-pipeline-plugin
    params: "{{ my_jenkins_params }}"
    url_password: p4ssw0rd
    url: http://localhost:8888
# Note that url_password **can not** be placed in params as params could end up in a log file

#
# 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
      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
      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
      set_fact:
        jenkins_restart_required: no

    - name: Check if restart is required by any of the versioned plugins
      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
      set_fact:
        jenkins_restart_required: yes
      when: item.changed
      with_items: "{{ my_jenkins_plugin_unversioned.results }}"

    - name: Restart Jenkins if required
      service:
        name: jenkins
        state: restarted
      when: jenkins_restart_required

    - name: Wait for Jenkins to start up
      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
      set_fact:
        jenkins_restart_required: no
      when: jenkins_restart_required

    - name: Plugin pinning
      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
      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

Примечания

Примечание

  • Установка плагина должна выполняться под пользователем root или пользователем, который владеет файлами плагина на диске. Только если плагин еще не установлен и не указана версия, выполняется установка через API, которая требует только учетных данных веб-интерфейса.
  • Необходимо уведомить обработчик или вызвать модуль service для перезапуска сервиса Jenkins после установки нового плагина.
  • Фиксация работает только в том случае, если плагин установлен, и сервис Jenkins успешно перезапущен после установки плагина.
  • Невозможно запустить модуль удаленно, изменив параметр url для указания на сервер Jenkins. Модуль должен использоваться на хосте, где работает Jenkins, так как ему нужен прямой доступ к файлам плагина.

Статус

Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.

Для получения помощи в разработке модулей, если у вас возникнет такое желание, прочитайте Информацию о сообществе и содействие, Тестирование Ansible и Разработка модулей.

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

Spec-Zone.ru

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