Random_Ansible_Stuff/playbooks/configure_node_for_k8s.yml

116 lines
3.1 KiB
YAML

---
- hosts: masters,workers
become: yes
become_method: su
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 && containered 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