# 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: Remove the blacklisted packages package: name: "{{ openstack_hosts_package_list | selectattr('state','equalto','absent') | map(attribute='name') | list }}" state: absent - name: Add/Remove repositories gpg keys manually apt_key: id: "{{ key.id | default(omit) }}" data: "{{ key.data | default(omit) }}" # use lookup('file','armored_content.asc') 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 | 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 }}" - 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: "{{ repo == package_repos[-1] }}" with_items: "{{ openstack_hosts_package_repos }}" loop_control: loop_var: repo register: _adding_apt_repo until: _adding_apt_repo | success retries: 5 delay: 2