Files
k8s/ansible/k8s-install-deps.yaml
2025-07-05 13:22:00 +02:00

103 lines
2.8 KiB
YAML

- name: Install Kubernetes packages
hosts: all
become: true
tasks:
- name: Add Docker signing key
ansible.builtin.apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
state: present
- name: Add Docker repository
ansible.builtin.apt_repository:
repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu noble stable
state: present
- name: Install required packages
ansible.builtin.apt:
name:
- apt-transport-https
- ca-certificates
- curl
- gpg
- containerd.io
state: present
update_cache: yes
## 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.
ansible.builtin.file:
path: /etc/containerd
state: directory
- name: Get defaults from containerd.
ansible.builtin.command: containerd config default
register: containerd_config_default
- name: Create config file
ansible.builtin.copy:
content: "{{ containerd_config_default.stdout }}"
dest: /etc/containerd/config.toml
- name: Set SystemdCgroup to true
ansible.builtin.replace:
path: /etc/containerd/config.toml
regexp: '^(\s*)SystemdCgroup\s*=\s*false'
replace: '\1SystemdCgroup = true'
- name: Restart containerd
ansible.builtin.service:
name: containerd
state: restarted
enabled: true
## Importantissimo per la gestione interna della network
- name: Enable IPv4 forwarding at runtime
ansible.posix.sysctl:
name: net.ipv4.ip_forward
value: '1'
reload: true
sysctl_set: yes
## Installa kubectl, kubeadm e kubelet dal repo ufficiale kubernetes
- name: Add Kubernetes signing key
ansible.builtin.apt_key:
url: https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key
state: present
- name: Add Kubernetes repository
ansible.builtin.apt_repository:
repo: deb [arch=amd64] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /
state: present
- name: Install Kubernetes components
ansible.builtin.apt:
name:
- kubelet
- kubeadm
- kubectl
state: present
update_cache: true
## Ferma i pacchetti ad una specifica versione
- name: Hold Kubernetes packages
ansible.builtin.dpkg_selections:
name: "{{ item }}"
selection: hold
loop:
- kubelet
- kubeadm
- kubectl
## Abilita il servizio di kubelet
- name: Enable and start kubelet
systemd:
name: kubelet
enabled: true
state: started