diff --git a/roles/wsgi_website/molecule/default/tests/test_default.py b/roles/wsgi_website/molecule/default/tests/test_default.py index f6dbb56b9778a09db1c1b2b4411548efe5744c9f..521f8f77b7354dd38490d5bc789c750881b9f68c 100644 --- a/roles/wsgi_website/molecule/default/tests/test_default.py +++ b/roles/wsgi_website/molecule/default/tests/test_default.py @@ -300,10 +300,8 @@ def test_python_virtualenv_wrapper_script(host, wrapper_script, expected_owner, @pytest.mark.parametrize("admin_user, pip_path, expected_packages", [ ('admin-parameters-mandatory', '/var/www/parameters-mandatory/virtualenv/bin/pip', [ - "argparse==1.2.1", "futures==3.2.0", "gunicorn==19.9.0", - "wsgiref==0.1.2" ]), ('admin-parameters-optional_local', '/var/www/parameters-optional.local/virtualenv/bin/pip', [ "Pygments==2.2.0", @@ -326,13 +324,11 @@ def test_python_virtualenv_wrapper_script(host, wrapper_script, expected_owner, "PasteDeploy==1.5.2", "PasteScript==2.0.2", "Werkzeug==0.12.2", - "argparse==1.2.1", "click==6.7", "futures==3.1.0", "gunicorn==19.7.0", "itsdangerous==0.24", "six==1.10.0", - "wsgiref==0.1.2", ]), ]) def test_virtualenv_packages(host, admin_user, pip_path, expected_packages): diff --git a/roles/wsgi_website/tasks/main.yml b/roles/wsgi_website/tasks/main.yml index 5f194c3103968976401cc9b22b36daa0f917b69a..e20812dc5310950d213c7d828aa117c0e9f638cb 100644 --- a/roles/wsgi_website/tasks/main.yml +++ b/roles/wsgi_website/tasks/main.yml @@ -122,6 +122,27 @@ # created (thanks to 'creates' parameter). - skip_ansible_lint +- name: Install latest pip in virtual environment + pip: + name: + - "pip>=18.0.0,<19.0.0" + virtualenv: "{{ home }}/virtualenv" + become: true + become_user: "{{ admin }}" + +# Workaround for: +# +# - https://github.com/pypa/pip/issues/4022 +# - https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463 +# - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871790 +- name: Remove the pkg-resources package from virtual environment (see comments above for details) + pip: + name: pkg-resources + virtualenv: "{{ home }}/virtualenv" + state: absent + become: true + become_user: "{{ admin }}" + - name: Configure project directory for the Python virtual environment template: src: "venv_project.j2" diff --git a/roles/wsgi_website/tasks/requirements.yml b/roles/wsgi_website/tasks/requirements.yml index b0f3017790cc32c625b9201631face87d355836c..9beb3854c8f563acc3a84ce630ebbe9804b55ba8 100644 --- a/roles/wsgi_website/tasks/requirements.yml +++ b/roles/wsgi_website/tasks/requirements.yml @@ -20,8 +20,6 @@ - wsgi_requirements.txt - name: Deploy Gunicorn requirements file for installation purposes - become: true - become_user: "{{ admin }}" template: src: "wsgi_requirements.txt.j2" dest: "{{ home }}/.wsgi_requirements.txt"