53 lines
1.7 KiB
YAML
53 lines
1.7 KiB
YAML
---
|
|
|
|
# Install plugins
|
|
# inspired by https://github.com/geerlingguy/ansible-role-jenkins MIT (Expat) / BSD)
|
|
# but we couldn't use jenkins_plugin's Ansible module because of crumb (CSRF) problems with our version
|
|
|
|
# Get current plugin list
|
|
# Warning : it may not be up to date if Jenkins hasn't been restarted after last plugin install
|
|
- name: Get the current plugin list
|
|
shell: "{{ jenkins_cli_command }} list-plugins | awk '{ print $1 }'"
|
|
changed_when: False
|
|
check_mode: no
|
|
register: current_plugin_list
|
|
|
|
## Update Jenkins so that plugin updates don't fail.
|
|
#- name: Create Jenkins updates directory.
|
|
# file:
|
|
# path: "{{ jenkins_home }}/updates"
|
|
# state: directory
|
|
# owner: jenkins
|
|
# group: jenkins
|
|
#
|
|
#- name: Download current plugin updates from Jenkins update site.
|
|
# get_url:
|
|
# url: "{{ jenkins_updates_url }}/update-center.json"
|
|
# dest: "{{ jenkins_home }}/updates/default.json"
|
|
# owner: jenkins
|
|
# group: jenkins
|
|
# mode: 0440
|
|
# changed_when: false
|
|
# register: get_result
|
|
# until: get_result is success
|
|
# retries: 3
|
|
# delay: 2
|
|
#
|
|
#- name: Remove first and last line from json file.
|
|
# replace:
|
|
# path: "{{ jenkins_home }}/updates/default.json"
|
|
# regexp: "1d;$d"
|
|
|
|
- name: Install Jenkins plugins.
|
|
shell: "{{ jenkins_cli_command }} install-plugin {{ item | quote }}"
|
|
with_items: "{{ jenkins_plugins }}"
|
|
when: item not in current_plugin_list.stdout_lines
|
|
notify: safe-restart jenkins and wait
|
|
|
|
# For convenience, we concatenate two lists of packages :
|
|
# - jenkins_plugins_system_dependency
|
|
# - jenkins_plugins_system_dependency_supp
|
|
- name: Install system packages needed by Jenkins plugins
|
|
apt:
|
|
name: "{{ jenkins_plugins_system_dependency | union(jenkins_plugins_system_dependency_supp | default([])) }}"
|
|
state: present
|