openstack-ansible/playbooks/common-tasks/package-cache-proxy.yml
Kevin Carter 52d7ae8397 Change the common proxy cache manage tasks to be stateful
In certain situation the proxy cache manager may be down, misconfigured,
or otherwise not available. To ensure a consistent environment and give
the deployer a better build experience, especially in the case of an
AIO, the proxy cache common task has been changed to test for cache
availability and add/remove the cache files based on that test.

Change-Id: Ibd0186d67a844ec7b79f423adfb8104d13f72ca5
Closes-Bug: #1632826
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-10-12 23:43:57 +00:00

50 lines
1.5 KiB
YAML

---
# Copyright 2016, Logan Vig <logan2211@gmail.com>
#
# 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.
- name: test proxy URL for connectivity
uri:
url: "{{ repo_pkg_cache_url }}/acng-report.html"
method: "HEAD"
register: proxy_check
failed_when: false
- name: Drop apt package manager proxy
copy:
content: 'Acquire::http { Proxy "{{ repo_pkg_cache_url }}"; };'
dest: "/etc/apt/apt.conf.d/00apt-cacher-proxy"
when:
- proxy_check.status == 200
- ansible_os_family == 'Debian'
- repo_pkg_cache_enabled | bool
- name: Remove apt package manager proxy
file:
dest: "/etc/apt/apt.conf.d/00apt-cacher-proxy"
state: "absent"
when:
- proxy_check.status != 200
- ansible_os_family == 'Debian'
- repo_pkg_cache_enabled | bool
- name: Drop yum package manager proxy
lineinfile:
line: 'proxy={{ repo_pkg_cache_url }}'
dest: "/etc/yum.conf"
state: "{{ (proxy_check.status == 200) | ternary('present', 'absent') }}"
when:
- ansible_os_family == 'RedHat'
- repo_pkg_cache_enabled | bool