infra/ansible/install-k3s-node3.yml
2025-10-05 13:12:28 -05:00

47 lines
No EOL
1.3 KiB
YAML

---
- name: Install k3s on node3 and join cluster
hosts: node3
become: true
vars:
k3s_version: "v1.28.4+k3s1"
k3s_server_url: "https://10.0.101.211:6443" # node1 IP
tasks:
- name: Check if k3s is already installed
stat:
path: /usr/local/bin/k3s
register: k3s_binary
- name: Get k3s token from master (node1)
delegate_to: node1
slurp:
src: /var/lib/rancher/k3s/server/node-token
register: k3s_token
when: not k3s_binary.stat.exists
- name: Install k3s as agent
shell: |
curl -sfL https://get.k3s.io | \
INSTALL_K3S_VERSION="{{ k3s_version }}" \
K3S_URL="{{ k3s_server_url }}" \
K3S_TOKEN="{{ k3s_token.content | b64decode | trim }}" \
sh -
when: not k3s_binary.stat.exists
- name: Wait for node to be ready
delegate_to: node1
shell: kubectl get node {{ inventory_hostname }} -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
register: node_status
until: node_status.stdout == "True"
retries: 30
delay: 10
when: not k3s_binary.stat.exists
- name: Verify node joined cluster
delegate_to: node1
command: kubectl get nodes
register: cluster_nodes
changed_when: false
- name: Display cluster status
debug:
var: cluster_nodes.stdout_lines