aipackage/ansible/roles/k3s/tasks/main.yml

63 lines
1.3 KiB
YAML

---
# K3s — lightweight Kubernetes for single-node AI workloads
- name: Check if K3s is already installed
stat:
path: /usr/local/bin/k3s
register: k3s_binary
- name: Install K3s
shell: |
curl -sfL https://get.k3s.io | \
INSTALL_K3S_EXEC="--disable traefik --disable servicelb" sh -
when: not k3s_binary.stat.exists
retries: 3
delay: 10
- name: Wait for K3s to be ready
wait_for:
path: /etc/rancher/k3s/k3s.yaml
timeout: 120
- name: Enable and start K3s
systemd:
name: k3s
enabled: yes
state: started
- name: Create .kube directory for cezen
file:
path: /opt/cezen/.kube
state: directory
owner: cezen
group: cezen
- name: Copy kubeconfig for cezen user
copy:
src: /etc/rancher/k3s/k3s.yaml
dest: /opt/cezen/.kube/config
owner: cezen
group: cezen
mode: "0600"
remote_src: yes
- name: Set KUBECONFIG in cezen .bashrc
lineinfile:
path: /opt/cezen/.bashrc
line: 'export KUBECONFIG=/opt/cezen/.kube/config'
create: yes
owner: cezen
- name: Install kubectl alias for cezen
lineinfile:
path: /opt/cezen/.bashrc
line: "alias kubectl='k3s kubectl'"
create: yes
owner: cezen
- name: Verify K3s node is ready
command: k3s kubectl get nodes
register: k3s_nodes
retries: 5
delay: 10
until: k3s_nodes.rc == 0