install-k3s-master.yml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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: pgrep -f k3s
  23. register: k3s_processes
  24. failed_when: false
  25. changed_when: false
  26. - name: Kill running k3s processes if any exist
  27. shell: pkill -f k3s
  28. when: k3s_processes.rc == 0 # Only run if processes were found
  29. - name: Remove k3s service file
  30. file:
  31. path: /etc/systemd/system/k3s.service
  32. state: absent
  33. - name: Remove k3s data directories
  34. file:
  35. path: "{{ item }}"
  36. state: absent
  37. loop:
  38. - /var/lib/rancher/k3s
  39. - /etc/rancher/k3s
  40. - /root/.kube
  41. - name: Print cleanup status
  42. debug:
  43. msg: "Cleanup completed on master node"
  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, skipping download"
  57. when: k3s_binary.stat.exists
  58. - name: Create k3s systemd service file
  59. template:
  60. src: k3s.service.j2
  61. dest: /etc/systemd/system/k3s.service
  62. mode: '0644'
  63. - name: Reload systemd daemon
  64. systemd:
  65. daemon_reload: yes
  66. - name: Enable and start k3s service
  67. systemd:
  68. name: k3s
  69. enabled: yes
  70. state: started
  71. - name: Wait for node-token file to be created
  72. wait_for:
  73. path: /var/lib/rancher/k3s/server/node-token
  74. timeout: 120
  75. register: token_wait
  76. - name: Check k3s service status
  77. shell: systemctl is-active k3s
  78. register: service_status
  79. ignore_errors: yes
  80. - name: Display k3s service status
  81. debug:
  82. msg: "k3s service status on master: {{ service_status.stdout }}"
  83. - name: Get k3s logs if service is not active
  84. shell: journalctl -u k3s --no-pager -n 20
  85. when: service_status.stdout != 'active'
  86. register: service_logs
  87. ignore_errors: yes
  88. - name: Display k3s logs if needed
  89. debug:
  90. msg: "{{ service_logs.stdout_lines }}"
  91. when: service_status.stdout != 'active'
  92. - name: Display success message
  93. debug:
  94. msg: "k3s master node installed and running successfully"