- name: Enable cgroups become: true hosts: pies tasks: - name: Ping hosts ansible.builtin.ping: - name: Check if cgroups are enabled command: cat /boot/firmware/cmdline.txt register: cmdlineContent - name: Enable cgroups command: sed -i -e 's/$/ cgroup_memory=1 cgroup_enable=memory/' /boot/firmware/cmdline.txt when: "'cgroup_memory=1 cgroup_enable=memory' not in cmdlineContent.stdout" notify: - Restart pi handlers: - name: Restart pi ansible.builtin.reboot: - name: Install k3s bootstrap server become: true hosts: Master tasks: - name: Ping host ansible.builtin.ping: - name: Install k3s bootstrap server shell: curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION={{ k3s_version }} K3S_NODE_NAME={{ inventory_hostname }} K3S_KUBECONFIG_MODE="644" sh -s - server --cluster-init - name: Extract K3S_TOKEN from server output command: cat /var/lib/rancher/k3s/server/node-token register: k3s_token failed_when: k3s_token is failed or k3s_token.stdout is undefined - name: Set K3S_TOKEN as a fact set_fact: k3s_token: "{{ k3s_token.stdout }}" - name: Install k3s servers become: true hosts: masters tasks: - name: Ping hosts ansible.builtin.ping: - name: Install k3s servers shell: curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION={{ k3s_version }} K3S_URL=https://{{ hostvars['master']['ansible_default_ipv4'].address }}:6443 K3S_TOKEN={{ hostvars['master']['k3s_token'] }} K3S_NODE_NAME={{ inventory_hostname }} sh -s - server - name: Install k3s workers become: true hosts: workers tasks: - name: Ping hosts ansible.builtin.ping: - name: Install k3s workers shell: curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION={{ k3s_version }} K3S_URL=https://{{ hostvars['master']['ansible_default_ipv4'].address }}:6443 K3S_TOKEN={{ hostvars['master']['k3s_token'] }} K3S_NODE_NAME={{ inventory_hostname }} sh - - name: Fetch k3s kubeconfig become: true hosts: Master tasks: - name: Fetch kubeconfig fetch: src: /etc/rancher/k3s/k3s.yaml dest: k3sconfig flat: true