openstack-ansible-ops/leap-upgrades/upgrade-utilities/pip-unify.yml
Jean-Philippe Evrard 2c4f9d110b Ensure all the packages are installed
Instead of ensuring only the package failing was installed, we
here ensure all the usual packages are installed to the proper
version to avoid headaches in the future.

Change-Id: Ibf766551a4c17adf7763f8c986b0d39cd7148979
2017-05-24 09:46:07 +00:00

99 lines
2.9 KiB
YAML

---
# Copyright 2015, 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.
- name: Unify pip utils
hosts: "hosts:!localhost"
gather_facts: false
user: root
vars:
pip_upstream_url: "https://raw.githubusercontent.com/pypa/get-pip/430ba37776ae2ad89f794c7a43b90dc23bac334c/get-pip.py"
pip_validate_certs: true
python_apt_packages:
- libssl-dev
- libffi-dev
- python-dev
tasks:
- name: "Copy global requirements"
copy:
src: "/opt/leap42/openstack-ansible-{{ release_version }}/global-requirement-pins.txt"
dest: "/tmp/global-requirement-pins.txt"
- name: "Copy upgrade requirements"
copy:
src: "{{ playbook_dir }}/../lib/upgrade-requirements.txt"
dest: "/tmp/upgrade-requirements.txt"
- name: Get Modern PIP
get_url:
url: "{{ pip_upstream_url }}"
dest: "/opt/get-pip.py"
force: "yes"
validate_certs: "{{ pip_validate_certs }}"
register: get_pip
until: get_pip | success
failed_when: false
retries: 5
delay: 2
- name: Get Modern PIP using fallback URL
get_url:
url: "{{ pip_fallback_url }}"
dest: "/opt/get-pip.py"
force: "yes"
validate_certs: "{{ pip_validate_certs }}"
when:
- get_pip | failed
- pip_fallback_url is defined
register: get_pip_fallback
until: get_pip_fallback | success
retries: 5
delay: 2
- name: purge old pip utils
raw: "rm -rf /usr/local/lib/python2.7/dist-packages/{{ item }}*"
with_items:
- setuptools
- wheel
- pip
- distutils
- packaging
args:
executable: /bin/bash
- name: Re-install pip
raw: |
/usr/bin/python /opt/get-pip.py \
--force-reinstall \
--upgrade \
--isolated \
--constraint /tmp/global-requirement-pins.txt
args:
executable: /bin/bash
- name: apt-get install libssl-dev
apt:
name: "{{ python_apt_packages }}"
update_cache: yes
- name: Re-install pip packaging requirements
raw: |
/usr/bin/python /opt/get-pip.py \
--upgrade \
--isolated \
--requirement /tmp/upgrade-requirements.txt \
--constraint /tmp/global-requirement-pins.txt
args:
executable: /bin/bash