c4405603be
We already have extra config for package manager. With this patch we extend existing functionality by adding optional default value, that will be concatinated with extra config. Deployers are able to set default config to empty string if want to disable that behaviour. Change-Id: Ifa40a5296969088fd8f2d07968a8d94e3bc5b2c5
93 lines
3.1 KiB
YAML
93 lines
3.1 KiB
YAML
---
|
|
# Copyright 2017, Rackspace US, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# APT configuration tasks that apply on all nodes.
|
|
|
|
- name: Install gpg tooling for key management
|
|
apt:
|
|
name: gnupg
|
|
state: "{{ openstack_hosts_package_state }}"
|
|
register: _install_gpg
|
|
until: _install_gpg is success
|
|
retries: 5
|
|
delay: 2
|
|
|
|
- name: Add/Remove repositories gpg keys manually
|
|
apt_key:
|
|
id: "{{ key.id | default(omit) }}"
|
|
data: "{{ key.data | default(omit) }}"
|
|
keyserver: "{{ key.keyserver | default(omit) }}"
|
|
url: "{{ key.url | default(omit) }}"
|
|
state: "{{ key.state | default('present') }}"
|
|
with_items: "{{ openstack_hosts_package_repos_keys }}"
|
|
loop_control:
|
|
loop_var: key
|
|
register: _add_apt_keys
|
|
until: _add_apt_keys is success
|
|
retries: 5
|
|
delay: 2
|
|
|
|
- name: Add requirement packages (repositories gpg keys, toolkits...)
|
|
apt:
|
|
name: "{{ openstack_hosts_package_list | rejectattr('state','equalto','absent') | map(attribute='name') | list }}"
|
|
state: "{{ openstack_hosts_package_state }}"
|
|
update_cache: yes
|
|
cache_valid_time: "{{ cache_timeout }}"
|
|
register: _install_packages
|
|
until: _install_packages is success
|
|
retries: 5
|
|
delay: 2
|
|
|
|
- name: Remove any old UCA repository using the old filename
|
|
file:
|
|
path: "{{ uca_apt_source_list_filename | default('ubuntu_cloud_archive_canonical_com_ubuntu') }}"
|
|
state: absent
|
|
|
|
# When updating the cache in the apt_repository
|
|
# task, and the update fails, a retry does not
|
|
# detect a change the second attempt and therefore
|
|
# does not update the cache, resulting in a changed
|
|
# repo config, but no updated cache. To work around
|
|
# this bug we implement the change of repo config
|
|
# and the cache update as two separate tasks.
|
|
- name: Add/Remove/Update standard and user defined repositories
|
|
apt_repository:
|
|
repo: "{{ repo.repo }}"
|
|
state: "{{ repo.state | default('present') }}"
|
|
filename: "{{ repo.filename | default(omit) }}"
|
|
update_cache: no
|
|
with_items: "{{ openstack_hosts_package_repos }}"
|
|
loop_control:
|
|
loop_var: repo
|
|
register: _adding_apt_repo
|
|
|
|
- name: Add apt extra conf
|
|
copy:
|
|
content: "{{ openstack_hosts_package_manager_default_conf + openstack_hosts_package_manager_extra_conf }}"
|
|
dest: /etc/apt/apt.conf.d/99openstack-ansible
|
|
when:
|
|
- openstack_hosts_package_manager_extra_conf | length > 0 or openstack_hosts_package_manager_default_conf | length > 0
|
|
|
|
- name: Update Apt cache
|
|
apt:
|
|
update_cache: yes
|
|
when:
|
|
- _adding_apt_repo is changed
|
|
register: _update_apt_cache
|
|
until: _update_apt_cache is success
|
|
changed_when: false
|
|
retries: 5
|
|
delay: 2
|