--- # 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