Files
k8s/ansible/k8s-install-deps.yaml
2025-06-29 15:32:24 +02:00

113 lines
3.0 KiB
YAML

- 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