Files
LLM-Labs-Local/ansible/roles/python_runtime/tasks/main.yml
T
2026-04-25 18:05:56 +00:00

75 lines
2.1 KiB
YAML

- name: Create contained Python runtime manager virtual environment
command:
argv:
- /usr/bin/python3
- -m
- venv
- "{{ courseware_uv_dir }}"
args:
creates: "{{ courseware_uv_dir }}/bin/python"
- name: Upgrade contained Python runtime manager tooling
command:
argv:
- "{{ courseware_uv_dir }}/bin/python"
- -m
- pip
- install
- --upgrade
- pip
- setuptools
- wheel
- name: Install contained Python runtime manager
command:
argv:
- "{{ courseware_uv_dir }}/bin/python"
- -m
- pip
- install
- "{{ courseware_uv_spec }}"
- name: Install managed CPython runtime
command:
argv:
- "{{ courseware_uv_bin }}"
- python
- install
- "{{ courseware_python_runtime_version }}"
- --install-dir
- "{{ courseware_python_runtime_dir }}"
environment:
UV_PYTHON_INSTALL_DIR: "{{ courseware_python_runtime_dir }}"
UV_CACHE_DIR: "{{ courseware_uv_cache_dir }}"
XDG_CACHE_HOME: "{{ courseware_cache_dir }}"
TMPDIR: "{{ courseware_tmp_dir }}"
register: courseware_python_runtime_install
changed_when: "'Installed Python' in courseware_python_runtime_install.stdout"
- name: Resolve managed CPython runtime
command:
argv:
- "{{ courseware_uv_bin }}"
- python
- find
- "{{ courseware_python_runtime_version }}"
environment:
UV_PYTHON_INSTALL_DIR: "{{ courseware_python_runtime_dir }}"
UV_CACHE_DIR: "{{ courseware_uv_cache_dir }}"
XDG_CACHE_HOME: "{{ courseware_cache_dir }}"
TMPDIR: "{{ courseware_tmp_dir }}"
register: courseware_python_runtime_find
changed_when: false
- name: Set managed Python runtime for courseware venvs
set_fact:
courseware_python_bin: "{{ courseware_python_runtime_find.stdout | trim }}"
- name: Verify managed Python runtime version
command:
argv:
- "{{ courseware_python_bin }}"
- -c
- "import sys; expected=tuple(map(int, '{{ courseware_python_runtime_version }}'.split('.'))); raise SystemExit(0 if sys.version_info[:len(expected)] == expected else 1)"
changed_when: false