install-k3s-master.yml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. ---
  2. - name: Install k3s on master node
  3. hosts: master
  4. become: yes
  5. vars:
  6. k3s_version: "v1.35.0+k3s1"
  7. k3s_download_url: "http://download.9981.tech/k3s-v1.35.0%2Bk3s1"
  8. master_ip: "47.113.186.215"
  9. k3s_token: "my-secret-token"
  10. tasks:
  11. - name: Check if k3s service exists
  12. stat:
  13. path: /etc/systemd/system/k3s.service
  14. register: k3s_service_exists
  15. - name: Stop k3s service if it exists
  16. systemd:
  17. name: k3s
  18. state: stopped
  19. when: k3s_service_exists.stat.exists
  20. ignore_errors: yes
  21. - name: Kill any running k3s processes
  22. shell: pkill -f k3s || true
  23. when: k3s_service_exists.stat.exists
  24. ignore_errors: yes
  25. - name: Remove k3s service file
  26. file:
  27. path: /etc/systemd/system/k3s.service
  28. state: absent
  29. - name: Remove k3s data directories
  30. file:
  31. path: "{{ item }}"
  32. state: absent
  33. loop:
  34. - /var/lib/rancher/k3s
  35. - /etc/rancher/k3s
  36. - /root/.kube
  37. - name: Print cleanup status
  38. debug:
  39. msg: "Cleanup completed on master node"
  40. - name: Check if k3s binary exists
  41. stat:
  42. path: /usr/local/bin/k3s
  43. register: k3s_binary
  44. - name: Download k3s binary
  45. get_url:
  46. url: "{{ k3s_download_url }}"
  47. dest: /usr/local/bin/k3s
  48. mode: '0755'
  49. when: not k3s_binary.stat.exists
  50. - name: Print k3s binary status
  51. debug:
  52. msg: "k3s binary already exists, skipping download"
  53. when: k3s_binary.stat.exists
  54. - name: Create k3s systemd service file
  55. template:
  56. src: k3s.service.j2
  57. dest: /etc/systemd/system/k3s.service
  58. mode: '0644'
  59. - name: Reload systemd daemon
  60. systemd:
  61. daemon_reload: yes
  62. - name: Enable and start k3s service
  63. systemd:
  64. name: k3s
  65. enabled: yes
  66. state: started
  67. - name: Wait for node-token file to be created
  68. wait_for:
  69. path: /var/lib/rancher/k3s/server/node-token
  70. timeout: 120
  71. register: token_wait
  72. - name: Check k3s service status
  73. shell: systemctl is-active k3s
  74. register: service_status
  75. ignore_errors: yes
  76. - name: Display k3s service status
  77. debug:
  78. msg: "k3s service status on master: {{ service_status.stdout }}"
  79. - name: Get k3s logs if service is not active
  80. shell: journalctl -u k3s --no-pager -n 20
  81. when: service_status.stdout != 'active'
  82. register: service_logs
  83. ignore_errors: yes
  84. - name: Display k3s logs if needed
  85. debug:
  86. msg: "{{ service_logs.stdout_lines }}"
  87. when: service_status.stdout != 'active'
  88. - name: Display success message
  89. debug:
  90. msg: "k3s master node installed and running successfully"