install-k3s-workers.yml 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. ---
  2. - name: Install k3s agents and join them to master
  3. hosts: master
  4. become: yes
  5. vars:
  6. master_ip: "47.113.186.215"
  7. k3s_download_url: "http://download.9981.tech/k3s-v1.35.0%2Bk3s1"
  8. tasks:
  9. - name: Fetch the node token from master
  10. slurp:
  11. src: /var/lib/rancher/k3s/server/node-token
  12. register: node_token_result
  13. - name: Set node token fact
  14. set_fact:
  15. node_token: "{{ node_token_result.content | b64decode | trim }}"
  16. - name: Copy node token to worker nodes
  17. copy:
  18. content: "{{ node_token }}"
  19. dest: /root/node-token
  20. delegate_to: "{{ item }}"
  21. loop:
  22. - "101.201.78.54"
  23. - "47.120.61.39"
  24. delegate_facts: yes
  25. - name: Install k3s on worker nodes and join to cluster
  26. hosts: workers
  27. become: yes
  28. vars:
  29. master_ip: "47.113.186.215"
  30. k3s_download_url: "http://download.9981.tech/k3s-v1.35.0%2Bk3s1"
  31. tasks:
  32. - name: Stop and cleanup any existing k3s installation on workers
  33. shell: |
  34. systemctl stop k3s-agent 2>/dev/null || true
  35. pkill -f k3s 2>/dev/null || true
  36. rm -rf /var/lib/rancher/k3s
  37. rm -f /etc/systemd/system/k3s-agent.service
  38. systemctl daemon-reload 2>/dev/null || true
  39. register: cleanup_result
  40. ignore_errors: yes
  41. - name: Print cleanup status
  42. debug:
  43. msg: "Cleanup completed on worker node {{ inventory_hostname }}"
  44. - name: Check if k3s binary exists
  45. stat:
  46. path: /usr/local/bin/k3s
  47. register: k3s_binary
  48. - name: Download k3s binary
  49. get_url:
  50. url: "{{ k3s_download_url }}"
  51. dest: /usr/local/bin/k3s
  52. mode: '0755'
  53. when: not k3s_binary.stat.exists
  54. - name: Print k3s binary status
  55. debug:
  56. msg: "k3s binary already exists on worker {{ inventory_hostname }}, skipping download"
  57. when: k3s_binary.stat.exists
  58. - name: Create k3s-agent systemd service file
  59. template:
  60. src: k3s-agent.service.j2
  61. dest: /etc/systemd/system/k3s-agent.service
  62. mode: '0644'
  63. - name: Reload systemd daemon
  64. systemd:
  65. daemon_reload: yes
  66. - name: Enable and start k3s-agent service
  67. systemd:
  68. name: k3s-agent
  69. enabled: yes
  70. state: started
  71. - name: Wait for k3s-agent to start
  72. wait_for:
  73. port: 10250
  74. host: "{{ inventory_hostname }}"
  75. timeout: 300
  76. delay: 10
  77. ignore_errors: yes
  78. - name: Display success message
  79. debug:
  80. msg: "k3s agent installed and joined to cluster on worker {{ inventory_hostname }}"