You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.1 KiB

  1. ---
  2. - name: Install Python and dependencies needed by packages
  3. apt:
  4. name:
  5. - python{{ python_version }}
  6. - python{{ python_version }}-venv
  7. - libgit2-dev
  8. - name: Create dir for venvs
  9. file:
  10. path: /opt/venvs
  11. state: directory
  12. owner: "{{ app_username }}"
  13. group: "{{ app_username }}"
  14. mode: 0755
  15. - name: Install packages needed for compiling psycopg2
  16. apt:
  17. name:
  18. - gcc
  19. - libpq-dev
  20. - name: Create venv
  21. become_user: "{{ app_username }}"
  22. command:
  23. cmd: python{{ python_version }} -m venv {{ venv_dir }}
  24. creates: "{{ venv_dir }}"
  25. - name: Check installed packages in venv
  26. command:
  27. cmd: "{{ bin_dir }}/pip freeze"
  28. register: pip_freeze
  29. changed_when: false
  30. - name: Install Python packages into venv
  31. become_user: "{{ app_username }}"
  32. pip:
  33. executable: "{{ bin_dir }}/pip"
  34. requirements: "{{ app_dir }}/{{ pip_requirements_filename }}"
  35. - name: Install Tildes into venv as editable
  36. become_user: "{{ app_username }}"
  37. pip:
  38. executable: "{{ bin_dir }}/pip"
  39. name: "{{ app_dir }}"
  40. editable: true
  41. when: "'-e '+app_dir not in pip_freeze.stdout_lines"