| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- ---
- - name: Install k3s on master node
- hosts: master
- become: yes
- vars:
- k3s_version: "v1.35.0+k3s1"
- k3s_download_url: "http://download.9981.tech/k3s-v1.35.0%2Bk3s1"
- master_ip: "47.113.186.215"
- k3s_token: "my-secret-token"
- tasks:
- - name: Check if k3s service exists
- stat:
- path: /etc/systemd/system/k3s.service
- register: k3s_service_exists
- - name: Stop k3s service if it exists
- systemd:
- name: k3s
- state: stopped
- when: k3s_service_exists.stat.exists
- ignore_errors: yes
- - name: Kill any running k3s processes
- shell: pkill -f k3s || true
- when: k3s_service_exists.stat.exists
- ignore_errors: yes
- - name: Remove k3s service file
- file:
- path: /etc/systemd/system/k3s.service
- state: absent
- - name: Remove k3s data directories
- file:
- path: "{{ item }}"
- state: absent
- loop:
- - /var/lib/rancher/k3s
- - /etc/rancher/k3s
- - /root/.kube
- - name: Print cleanup status
- debug:
- msg: "Cleanup completed on master node"
- - name: Check if k3s binary exists
- stat:
- path: /usr/local/bin/k3s
- register: k3s_binary
- - name: Download k3s binary
- get_url:
- url: "{{ k3s_download_url }}"
- dest: /usr/local/bin/k3s
- mode: '0755'
- when: not k3s_binary.stat.exists
- - name: Print k3s binary status
- debug:
- msg: "k3s binary already exists, skipping download"
- when: k3s_binary.stat.exists
- - name: Create k3s systemd service file
- template:
- src: k3s.service.j2
- dest: /etc/systemd/system/k3s.service
- mode: '0644'
- - name: Reload systemd daemon
- systemd:
- daemon_reload: yes
- - name: Enable and start k3s service
- systemd:
- name: k3s
- enabled: yes
- state: started
- - name: Wait for node-token file to be created
- wait_for:
- path: /var/lib/rancher/k3s/server/node-token
- timeout: 120
- register: token_wait
- - name: Check k3s service status
- shell: systemctl is-active k3s
- register: service_status
- ignore_errors: yes
- - name: Display k3s service status
- debug:
- msg: "k3s service status on master: {{ service_status.stdout }}"
-
- - name: Get k3s logs if service is not active
- shell: journalctl -u k3s --no-pager -n 20
- when: service_status.stdout != 'active'
- register: service_logs
- ignore_errors: yes
- - name: Display k3s logs if needed
- debug:
- msg: "{{ service_logs.stdout_lines }}"
- when: service_status.stdout != 'active'
- - name: Display success message
- debug:
- msg: "k3s master node installed and running successfully"
|