116 lines
3.1 KiB
YAML
116 lines
3.1 KiB
YAML
---
|
|
- hosts: masters,workers
|
|
become: yes
|
|
become_method: sudo
|
|
become_user: root
|
|
tasks:
|
|
- name: Add overlay modprobe module
|
|
community.general.modprobe:
|
|
name: overlay
|
|
persistent: present
|
|
state: present
|
|
|
|
- name: Add br_netfilter module
|
|
community.general.modprobe:
|
|
name: br_netfilter
|
|
persistent: present
|
|
state: present
|
|
|
|
- name: Set SELinux to Permissive
|
|
ansible.posix.selinux:
|
|
state: disabled
|
|
|
|
- name: Set firewalld configuration | Master Nodes
|
|
ansible.posix.firewalld:
|
|
port: "{{ item }}"
|
|
permanent: true
|
|
state: enabled
|
|
loop:
|
|
- "6443/tcp"
|
|
- "2379-2380/tcp"
|
|
- "10250/tcp"
|
|
- "10251/tcp"
|
|
- "10259/tcp"
|
|
- "10257/tcp"
|
|
- "179/tcp"
|
|
- "4789/udp"
|
|
when: master | default(false)
|
|
|
|
- name: Set firewalld configuration | Worker Nodes
|
|
ansible.posix.firewalld:
|
|
port: "{{ item }}"
|
|
permanent: true
|
|
state: enabled
|
|
loop:
|
|
- "179/tcp"
|
|
- "10250/tcp"
|
|
- "30000-32767/tcp"
|
|
- "4789/udp"
|
|
when: worker | default(false)
|
|
|
|
- name: Create network settings configuration file
|
|
ansible.builtin.blockinfile:
|
|
path: "/etc/sysctl.d/99-kubernetes-cri.conf"
|
|
block: |
|
|
net.bridge.bridge-nf-call-iptables = 1
|
|
net.ipv4.ip_forward = 1
|
|
net.bridge.bridge-nf-call-ip6tables = 1
|
|
create: true
|
|
|
|
- name: Apply new sysctl settings
|
|
ansible.builtin.shell:
|
|
cmd: sysctl --system
|
|
changed_when: false
|
|
|
|
- name: Add docker repo
|
|
ansible.builtin.shell:
|
|
cmd: dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
|
changed_when: false
|
|
|
|
- name: Install containerd
|
|
ansible.builtin.yum:
|
|
name: containerd.io
|
|
state: present
|
|
|
|
- name: Build default containerd config
|
|
ansible.builtin.shell:
|
|
cmd: set -o pipefail && mkdir -p /etc/containerd && containerd config default | tee /etc/containerd/config.toml
|
|
changed_when: false
|
|
|
|
- name: Restart containerd
|
|
ansible.builtin.service:
|
|
name: containerd
|
|
state: restarted
|
|
enabled: true
|
|
|
|
- name: Create Kubernetes repo
|
|
ansible.builtin.blockinfile:
|
|
path: "/etc/yum.repos.d/kubernetes.repo"
|
|
create: true
|
|
block: |
|
|
[kubernetes]
|
|
name=Kubernetes
|
|
baseurl=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/
|
|
enabled=1
|
|
gpgcheck=1
|
|
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/repodata/repomd.xml.key
|
|
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
|
|
|
|
- name: Install Kubernetes components
|
|
ansible.builtin.yum:
|
|
name:
|
|
- kubelet
|
|
- kubeadm
|
|
- kubectl
|
|
state: present
|
|
disable_excludes: all
|
|
|
|
- name: Disable running swap
|
|
ansible.builtin.shell:
|
|
cmd: swapoff -a
|
|
changed_when: false
|
|
|
|
- name: Disable swap in fstab
|
|
ansible.builtin.shell:
|
|
cmd: sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
|
|
changed_when: false |