113 lines
3.0 KiB
YAML
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 |