- name: Install Kubernetes packages hosts: all become: true tasks: - name: Ensure apt cache is updated apt: update_cache: yes cache_valid_time: 3600 - name: Install required packages apt: name: - apt-transport-https - ca-certificates - curl - gpg - containerd state: present ## Questo non รจ nella documentazione! bisogna generare il file di configurazione di containerd ## ed scriverlo nella directory apposita, altrimenti usa un suo default che non va bene - name: Ensure containerd config directory exists file: path: /etc/containerd state: directory mode: '0755' - name: Generate default containerd config if missing command: containerd config default register: containerd_config when: not lookup('file', '/etc/containerd/config.toml', errors='ignore') changed_when: false - name: Write default containerd config copy: content: "{{ containerd_config.stdout }}" dest: /etc/containerd/config.toml when: containerd_config is defined - name: Set SystemdCgroup = true in containerd config replace: path: /etc/containerd/config.toml regexp: '^(\s*SystemdCgroup\s*=\s*)false' replace: '\1true' - name: Restart containerd systemd: name: containerd state: restarted enabled: yes ## Importantissimo per la gestione interna della network - name: Enable IPv4 forwarding at runtime sysctl: name: net.ipv4.ip_forward value: '1' state: present reload: yes sysctl_set: yes ## Installa kubectl, kubeadm e kubelet dal repo ufficiale kubernetes - name: Create /etc/apt/keyrings directory file: path: /etc/apt/keyrings state: directory mode: '0755' - name: Download and save the Kubernetes APT key ansible.builtin.shell: | curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg args: creates: /etc/apt/keyrings/kubernetes-apt-keyring.gpg - name: Add Kubernetes APT repository copy: dest: /etc/apt/sources.list.d/kubernetes.list content: | deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ / - name: Update apt cache after adding Kubernetes repo apt: update_cache: yes - name: Install Kubernetes components apt: name: - kubelet - kubeadm - kubectl state: present ## Ferma i pacchetti ad una specifica versione - name: Hold Kubernetes packages ansible.builtin.shell: apt-mark hold kubelet kubeadm kubectl - name: Enable and start containerd systemd: name: containerd enabled: true state: started ## Abilita il servizio di kubelet - name: Enable and start kubelet systemd: name: kubelet enabled: true state: started