--- - name: Ensure config directory exists ansible.builtin.file: path: "{{ k3s_config_file | dirname }}" state: directory mode: 0755 become: "{{ k3s_become_for_install_dir | ternary(true, false, k3s_become_for_all) }}" - name: Ensure systemd unit file directory exists ansible.builtin.file: path: "{{ k3s_systemd_unit_dir }}" state: directory mode: 0755 become: "{{ k3s_become_for_systemd | ternary(true, false, k3s_become_for_all) }}" - name: Ensure data directory exists when not using the default ansible.builtin.file: path: "{{ k3s_runtime_config['data-dir'] | default('/var/lib/rancher/k3s') }}" state: directory mode: 0755 become: "{{ k3s_become_for_data_dir | ternary(true, false, k3s_become_for_all) }}" when: k3s_runtime_config is defined and "data-dir" in k3s_runtime_config and k3s_runtime_config['data-dir'] != "/var/lib/rancher/k3s" - include_tasks: install-k3s-node.yml when: ((k3s_control_node and k3s_controller_count | length == 1) or (k3s_primary_control_node and k3s_controller_count | length > 1)) and not ansible_check_mode - meta: flush_handlers - include_tasks: install-k3s-node.yml when: k3s_build_cluster - name: Ensure k3s control plane is started ansible.builtin.systemd: name: k3s state: started enabled: true scope: "{{ k3s_systemd_context }}" when: (k3s_control_node and k3s_controller_count | length == 1) or (k3s_primary_control_node and k3s_controller_count | length > 1) become: "{{ k3s_become_for_systemd | ternary(true, false, k3s_become_for_all) }}"