install-k3s-master.yml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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: Check for running k3s processes
  22. shell: ps aux | grep '[k]3s' | awk '{print $2}' || true
  23. register: k3s_pids
  24. changed_when: false
  25. - name: Kill running k3s processes if any exist
  26. shell: "kill {{ item }}"
  27. loop: "{{ k3s_pids.stdout_lines }}"
  28. when: k3s_pids.stdout != ""
  29. ignore_errors: yes
  30. - name: Remove k3s service file
  31. file:
  32. path: /etc/systemd/system/k3s.service
  33. state: absent
  34. - name: Remove k3s data directories
  35. file:
  36. path: "{{ item }}"
  37. state: absent
  38. loop:
  39. - /var/lib/rancher/k3s
  40. - /etc/rancher/k3s
  41. - /root/.kube
  42. - name: Print cleanup status
  43. debug:
  44. msg: "Cleanup completed on master node"
  45. - name: Check if k3s binary exists
  46. stat:
  47. path: /usr/local/bin/k3s
  48. register: k3s_binary
  49. - name: Download k3s binary
  50. get_url:
  51. url: "{{ k3s_download_url }}"
  52. dest: /usr/local/bin/k3s
  53. mode: '0755'
  54. when: not k3s_binary.stat.exists
  55. - name: Print k3s binary status
  56. debug:
  57. msg: "k3s binary already exists, skipping download"
  58. when: k3s_binary.stat.exists
  59. - name: Create k3s systemd service file
  60. template:
  61. src: k3s.service.j2
  62. dest: /etc/systemd/system/k3s.service
  63. mode: '0644'
  64. - name: Reload systemd daemon
  65. systemd:
  66. daemon_reload: yes
  67. - name: Enable and start k3s service
  68. systemd:
  69. name: k3s
  70. enabled: yes
  71. state: started
  72. - name: Wait for node-token file to be created
  73. wait_for:
  74. path: /var/lib/rancher/k3s/server/node-token
  75. timeout: 120
  76. register: token_wait
  77. - name: Check k3s service status
  78. shell: systemctl is-active k3s
  79. register: service_status
  80. ignore_errors: yes
  81. - name: Display k3s service status
  82. debug:
  83. msg: "k3s service status on master: {{ service_status.stdout }}"
  84. - name: Get k3s logs if service is not active
  85. shell: journalctl -u k3s --no-pager -n 20
  86. when: service_status.stdout != 'active'
  87. register: service_logs
  88. ignore_errors: yes
  89. - name: Display k3s logs if needed
  90. debug:
  91. msg: "{{ service_logs.stdout_lines }}"
  92. when: service_status.stdout != 'active'
  93. - name: Display success message
  94. debug:
  95. msg: "k3s master node installed and running successfully"