-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjenkins-plugins-upgrade.yaml
44 lines (36 loc) · 1.83 KB
/
jenkins-plugins-upgrade.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
---
- name: Upgrade jenkins plugins
hosts: localhost
gather_facts: false
vars:
jenkins_url: "http://18.234.101.245:8080"
jenkins_username: "nrk"
jenkins_password: "nrk"
tasks:
- name: Download Jenkins CLI jar
ansible.builtin.get_url:
url: "{{ jenkins_url }}/jnlpJars/jenkins-cli.jar"
dest: /tmp/jenkins-cli.jar
- name: List plugins and versions
ansible.builtin.shell: java -jar /tmp/jenkins-cli.jar -s '{{ jenkins_url }}' -auth '{{ jenkins_username }}:{{ jenkins_password }}' list-plugins
register: plugins_output
- name: Parse plugin names and versions
ansible.builtin.set_fact:
plugin_info: "{{ plugins_output.stdout_lines[1:] | map('regex_replace', '^([^ ]+)[^0-9]+([0-9].*)$', '\\1:\\2') | list }}"
- name: Display plugin names and versions
ansible.builtin.debug:
msg: "{{ item }}"
loop: "{{ plugin_info }}"
- name: Upgrade Jenkins plugins
ansible.builtin.command: "java -jar /tmp/jenkins-cli.jar -s '{{ jenkins_url }}' -auth '{{ jenkins_username }}:{{ jenkins_password }}' install-plugin '{{ item }}' -deploy"
loop: "{{ plugin_info }}"
changed_when: true
- name: Get installed plugins (after upgrade)
ansible.builtin.shell: "java -jar /tmp/jenkins-cli.jar -s '{{ jenkins_url }}' -auth '{{ jenkins_username }}:{{ jenkins_password }}' list-plugins"
register: installed_plugins_after
- name: Display plugin names and versions after upgradation
ansible.builtin.debug:
msg: "{{ item }}"
loop: "{{ installed_plugins_after.stdout_lines[1:] | map('regex_replace', '^([^ ]+)[^0-9]+([0-9].*)$', '\\1:\\2') | list }}"
- name: Restart Jenkins
ansible.builtin.command: "java -jar /tmp/jenkins-cli.jar -s '{{ jenkins_url }}' -auth '{{ jenkins_username }}:{{ jenkins_password }}' safe-restart"