--- # Role to set/install Kubernetes prerequisites - name: 1. Set Kubernetes-compatible hostname ansible.builtin.hostname: name: "{{ kubernetes_hostnames[inventory_hostname] | default(inventory_hostname) }}" - name: 2. Disable swap ansible.builtin.include_role: name: no-swap - name: 3. Manage SELinux become: true when: ansible_os_family == "RedHat" block: - name: 3.1 Install python3-libselinux for managing selinux ansible.builtin.dnf: name: python3-libselinux state: present - name: 3.2 Set SELinux to permissive mode ansible.posix.selinux: policy: targeted state: "{{ selinux_state }}" - name: 4 Manage Time Synchronization ansible.builtin.include_role: name: time-sync - name: 5.1 Manage firewall (ufw) become: true when: ansible_os_family == "Debian" block: - name: 5.1.1 Install ufw ansible.builtin.package: name: ufw state: present - name: 5.1.2 Open firewall ports OpenSSH community.general.ufw: rule: allow name: OpenSSH - name: 5.1.3 Enable ufw community.general.ufw: state: enabled - name: 5.2 Manage firewall (firewalld) become: true when: ansible_os_family == "RedHat" block: - name: 5.2.1 Install firewalld ansible.builtin.package: name: firewalld state: present - name: 5.2.2 Add SSH service to default zone (ensure SSH access) ansible.posix.firewalld: service: ssh permanent: true immediate: true state: enabled - name: 5.2.3 Start and enable firewalld ansible.builtin.systemd: name: firewalld state: started enabled: true - name: 6 Install kubernetes ansible.builtin.include_role: name: kubernetes - name: 7 Install containerd ansible.builtin.include_role: name: containerd