-
Notifications
You must be signed in to change notification settings - Fork 5
/
_ardana-upgrade-base.yml
105 lines (91 loc) · 3.82 KB
/
_ardana-upgrade-base.yml
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#
# (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Playbook to apply the available system package upgrades
---
- hosts: resources
tasks:
- name: _ardana-upgrade-base | Get set of installed pkgs before upgrade
dpkg_list:
when: ansible_os_family | lower == 'debian'
- name: _ardana-upgrade-base | Get set of installed pkgs before upgrade
rpm_list:
when: ansible_os_family | lower == 'suse'
- name: _ardana-upgrade-base | Set pre_upgrade_pkgs fact
set_fact:
ardana_pre_upgrade_pkgs: "{{ installed_pkgs | default([]) }}"
- name: _ardana-upgrade-base | Print list of pkgs available for upgrade
debug:
msg: "Packages available for upgrade: {{ list_pkg_upgrades_base | default([]) }}"
- name: _ardana-upgrade-base | Apply package updates
become: yes
apt:
upgrade: full
force: yes
dpkg_options: force-overwrite,force-confdef,force-confold
when: ansible_os_family | lower == 'debian'
- name: _ardana-upgrade-base | Add SLES and Cloud repos
set_fact:
_repositories:
- SLES-OS
- Cloud
- PTF
- SLES12-SP3-Pool
- SLES12-SP3-Updates
- OpenStack-Cloud-8-Pool
- OpenStack-Cloud-8-Updates
when: ansible_os_family | lower == 'suse'
- name: _ardana-upgrade-base | Determine the repos currently installed
become: yes
# stdout will be comprised of lines like " <repo-alias> "
shell: zypper repos | tail "-n +2" | cut -d'|' -f2
register: _existing_repos_result
when: ansible_os_family | lower == 'suse'
- name: osconfig | setup-zypp | Generate SLES repos exists map
set_fact:
_dup_flags: >
{%- set _flags = [] -%}
{%- for r in _repositories if " " + r + " " in _existing_repos_result.stdout -%}
{%- set _ = _flags.append("--from " + r) -%}
{%- endfor -%}
{{ _flags }}
when: ansible_os_family | lower == 'suse'
- name: _ardana-upgrade-base | Download and install package upgrades
become: yes
command: zypper dup --download in-advance -y --no-recommends --allow-vendor-change {{ _dup_flags | join(' ') }}
when: ansible_os_family | lower == 'suse'
# Upgrade from 2.x to 3.0 need to 'cleanup' the /etc/init.d/openvswitch-switch
# which was customized in 2.x
- name: _ardana-upgrade-base | Determine if openvswitch-switch script needs cleanup
stat:
path: /etc/init.d/openvswitch-switch.dpkg-dist
register: new_openvswitch_switch
- name: _ardana-upgrade-base | Put new openvswitch-switch init script in place
become: yes
command: mv /etc/init.d/openvswitch-switch.dpkg-dist /etc/init.d/openvswitch-switch
when: new_openvswitch_switch.stat.exists
- name: _ardana-upgrade-base | Get set of installed pkgs after upgrade
dpkg_list:
when: ansible_os_family | lower == 'debian'
- name: _ardana-upgrade-base | Get set of installed pkgs after upgrade
rpm_list:
when: ansible_os_family | lower == 'suse'
- name: _ardana-upgrade-base | Set post_upgrade_pkgs fact
set_fact:
ardana_post_upgrade_pkgs: "{{ installed_pkgs | default([]) }}"
- name: _ardana-upgrade-base | Set fact with full set of upgraded pkgs
set_fact:
ardana_upgraded_pkgs: "{{ ardana_pre_upgrade_pkgs | upgraded_pkgs(ardana_post_upgrade_pkgs) }}"