diff --git a/ansible/entry.yml b/ansible/entry.yml index 4a47c93..9b5b926 100644 --- a/ansible/entry.yml +++ b/ansible/entry.yml @@ -8,6 +8,7 @@ vars: cezen_user: "cezen" cezen_home: "/opt/cezen" + cezen_login_home: "/home/cezen" python_version: "3.11" cuda_version: "12.4" skip_roles: "" # comma-separated list of role names to skip (set by install.sh) diff --git a/ansible/roles/base/tasks/main.yml b/ansible/roles/base/tasks/main.yml index a76a0cb..b846504 100644 --- a/ansible/roles/base/tasks/main.yml +++ b/ansible/roles/base/tasks/main.yml @@ -31,25 +31,24 @@ - name: Create cezen user user: - name: cezen + name: "{{ cezen_user }}" shell: /bin/bash - home: /opt/cezen - create_home: yes groups: sudo append: yes + state: present - name: Create cezen directories file: path: "{{ item }}" state: directory - owner: cezen - group: cezen + owner: "{{ cezen_user }}" + group: "{{ cezen_user }}" mode: "0755" loop: - - /opt/cezen - - /opt/cezen/models - - /opt/cezen/data - - /opt/cezen/logs + - "{{ cezen_home }}" + - "{{ cezen_home }}/models" + - "{{ cezen_home }}/data" + - "{{ cezen_home }}/logs" - name: Download Miniconda get_url: @@ -60,35 +59,35 @@ delay: 10 - name: Install Miniconda - become_user: cezen - command: bash /tmp/miniconda.sh -b -p /opt/cezen/miniconda + become_user: "{{ cezen_user }}" + command: bash /tmp/miniconda.sh -b -p {{ cezen_home }}/miniconda args: - creates: /opt/cezen/miniconda/bin/conda + creates: "{{ cezen_home }}/miniconda/bin/conda" - name: Add conda to cezen PATH lineinfile: - path: /opt/cezen/.bashrc - line: 'export PATH="/opt/cezen/miniconda/bin:$PATH"' + path: "{{ cezen_login_home }}/.bashrc" + line: 'export PATH="{{ cezen_home }}/miniconda/bin:$PATH"' create: yes - owner: cezen + owner: "{{ cezen_user }}" - name: Accept Anaconda Terms of Service (required since 2024) - become_user: cezen + become_user: "{{ cezen_user }}" shell: | - /opt/cezen/miniconda/bin/conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main - /opt/cezen/miniconda/bin/conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r + {{ cezen_home }}/miniconda/bin/conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main + {{ cezen_home }}/miniconda/bin/conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r changed_when: false - name: Create cezen conda environment (Python 3.11) - become_user: cezen - command: /opt/cezen/miniconda/bin/conda create -n cezen python=3.11 -y + become_user: "{{ cezen_user }}" + command: "{{ cezen_home }}/miniconda/bin/conda create -n cezen python=3.11 -y" args: - creates: /opt/cezen/miniconda/envs/cezen + creates: "{{ cezen_home }}/miniconda/envs/cezen" - name: Install LangChain + LlamaIndex + HuggingFace in conda env (5–10 min, please wait...) - become_user: cezen + become_user: "{{ cezen_user }}" shell: | - /opt/cezen/miniconda/bin/conda run -n cezen pip install \ + {{ cezen_home }}/miniconda/bin/conda run -n cezen pip install \ langchain langchain-community llama-index \ transformers huggingface-hub \ peft bitsandbytes accelerate \ diff --git a/ansible/roles/k3s/tasks/main.yml b/ansible/roles/k3s/tasks/main.yml index 42aa64e..fbdc10c 100644 --- a/ansible/roles/k3s/tasks/main.yml +++ b/ansible/roles/k3s/tasks/main.yml @@ -42,17 +42,17 @@ - name: Set KUBECONFIG in cezen .bashrc lineinfile: - path: /opt/cezen/.bashrc - line: 'export KUBECONFIG=/opt/cezen/.kube/config' + path: "{{ cezen_login_home }}/.bashrc" + line: 'export KUBECONFIG={{ cezen_home }}/.kube/config' create: yes - owner: cezen + owner: "{{ cezen_user }}" - name: Install kubectl alias for cezen lineinfile: - path: /opt/cezen/.bashrc + path: "{{ cezen_login_home }}/.bashrc" line: "alias kubectl='k3s kubectl'" create: yes - owner: cezen + owner: "{{ cezen_user }}" - name: Verify K3s node is ready command: k3s kubectl get nodes