47 lines
No EOL
1.3 KiB
YAML
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 |