92 lines
2.8 KiB
YAML
92 lines
2.8 KiB
YAML
- name: Create managed state directories
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
mode: "0755"
|
|
loop:
|
|
- "{{ courseware_state_dir }}"
|
|
- "{{ courseware_markers_dir }}"
|
|
- "{{ courseware_logs_dir }}"
|
|
- "{{ courseware_run_dir }}"
|
|
- "{{ courseware_repos_dir }}"
|
|
- "{{ courseware_venvs_dir }}"
|
|
- "{{ courseware_models_dir }}"
|
|
- "{{ courseware_datasets_dir }}"
|
|
- "{{ courseware_tools_dir }}"
|
|
- "{{ courseware_apps_dir }}"
|
|
- "{{ courseware_downloads_dir }}"
|
|
- "{{ courseware_lab2_dir }}"
|
|
- "{{ courseware_safe_homes_dir }}"
|
|
- "{{ courseware_transformerlab_home }}"
|
|
- "{{ courseware_unsloth_home }}"
|
|
- "{{ courseware_ollama_models_dir }}"
|
|
|
|
- name: Seed managed ownership markers
|
|
file:
|
|
path: "{{ item }}"
|
|
state: touch
|
|
mode: "0644"
|
|
loop:
|
|
- "{{ courseware_transformerlab_home }}/.courseware-managed"
|
|
- "{{ courseware_unsloth_home }}/.courseware-managed"
|
|
|
|
- name: Check existing TransformerLab path
|
|
stat:
|
|
path: "{{ ansible_env.HOME }}/.transformerlab"
|
|
follow: false
|
|
register: courseware_transformerlab_link
|
|
|
|
- name: Check existing TransformerLab ownership marker
|
|
stat:
|
|
path: "{{ ansible_env.HOME }}/.transformerlab/.courseware-managed"
|
|
register: courseware_transformerlab_marker
|
|
|
|
- name: Fail if TransformerLab path is already occupied
|
|
fail:
|
|
msg: "{{ ansible_env.HOME }}/.transformerlab already exists and is not managed by this project."
|
|
when:
|
|
- courseware_transformerlab_link.stat.exists
|
|
- >
|
|
(
|
|
(not courseware_transformerlab_link.stat.islnk) or
|
|
(courseware_transformerlab_link.stat.islnk and
|
|
courseware_transformerlab_link.stat.lnk_source != courseware_transformerlab_home)
|
|
) and
|
|
(not courseware_transformerlab_marker.stat.exists)
|
|
|
|
- name: Link TransformerLab home into project state
|
|
file:
|
|
src: "{{ courseware_transformerlab_home }}"
|
|
dest: "{{ ansible_env.HOME }}/.transformerlab"
|
|
state: link
|
|
force: true
|
|
|
|
- name: Check existing Unsloth path
|
|
stat:
|
|
path: "{{ ansible_env.HOME }}/.unsloth"
|
|
follow: false
|
|
register: courseware_unsloth_link
|
|
|
|
- name: Fail if Unsloth path is already occupied
|
|
fail:
|
|
msg: "{{ ansible_env.HOME }}/.unsloth already exists and is not managed by this project."
|
|
when:
|
|
- courseware_unsloth_link.stat.exists
|
|
- >
|
|
(not courseware_unsloth_link.stat.islnk) or
|
|
(courseware_unsloth_link.stat.islnk and
|
|
courseware_unsloth_link.stat.lnk_source != courseware_unsloth_home)
|
|
|
|
- name: Link Unsloth home into project state
|
|
file:
|
|
src: "{{ courseware_unsloth_home }}"
|
|
dest: "{{ ansible_env.HOME }}/.unsloth"
|
|
state: link
|
|
force: true
|
|
|
|
- name: Write runtime environment file
|
|
template:
|
|
src: "{{ playbook_dir }}/../templates/runtime.env.j2"
|
|
dest: "{{ courseware_state_dir }}/runtime.env"
|
|
mode: "0644"
|