You've already forked ansible-awx-gitlab
133 lines
3.3 KiB
YAML
133 lines
3.3 KiB
YAML
---
|
|
- name: Disable swap
|
|
ansible.builtin.command: swapoff -a
|
|
changed_when: true
|
|
tags: [k3s_install]
|
|
|
|
- name: Remove swap entries from fstab
|
|
ansible.builtin.replace:
|
|
path: /etc/fstab
|
|
regexp: '^([^#].*\sswap\s.*)$'
|
|
replace: '# \1'
|
|
tags: [k3s_install]
|
|
|
|
- name: Load required kernel modules
|
|
community.general.modprobe:
|
|
name: "{{ item }}"
|
|
state: present
|
|
loop:
|
|
- overlay
|
|
- br_netfilter
|
|
tags: [k3s_install]
|
|
|
|
- name: Persist required kernel modules across reboots
|
|
ansible.builtin.copy:
|
|
dest: /etc/modules-load.d/k3s.conf
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
content: |
|
|
overlay
|
|
br_netfilter
|
|
tags: [k3s_install]
|
|
|
|
- name: Set required sysctl parameters
|
|
ansible.posix.sysctl:
|
|
name: "{{ item.name }}"
|
|
value: "{{ item.value }}"
|
|
sysctl_set: true
|
|
state: present
|
|
reload: true
|
|
loop:
|
|
- { name: "net.bridge.bridge-nf-call-iptables", value: "1" }
|
|
- { name: "net.ipv4.ip_forward", value: "1" }
|
|
tags: [k3s_install]
|
|
|
|
- name: Open firewall ports required by k3s
|
|
ansible.posix.firewalld:
|
|
zone: "{{ firewall_default_zone }}"
|
|
rich_rule: >-
|
|
rule family="ipv4" source address="{{ firewall_admin_subnet }}"
|
|
port protocol="{{ item.proto }}" port="{{ item.port }}" accept
|
|
permanent: true
|
|
immediate: true
|
|
state: enabled
|
|
loop:
|
|
- { port: "6443", proto: "tcp" }
|
|
- { port: "10250", proto: "tcp" }
|
|
- { port: "8472", proto: "udp" }
|
|
- { port: "{{ awx_operator_nodeport }}", proto: "tcp" }
|
|
tags: [k3s_install]
|
|
|
|
- name: Install pip
|
|
ansible.builtin.dnf:
|
|
name: python3-pip
|
|
state: present
|
|
tags: [k3s_install]
|
|
|
|
- name: Install the Python kubernetes client library
|
|
ansible.builtin.pip:
|
|
name: kubernetes
|
|
state: present
|
|
tags: [k3s_install]
|
|
|
|
- name: Check whether k3s is already installed
|
|
ansible.builtin.stat:
|
|
path: /usr/local/bin/k3s
|
|
register: k3s_install_binary
|
|
tags: [k3s_install]
|
|
|
|
- name: Download the k3s install script
|
|
ansible.builtin.get_url:
|
|
url: https://get.k3s.io
|
|
dest: /tmp/k3s-install.sh
|
|
mode: "0700"
|
|
when: not k3s_install_binary.stat.exists
|
|
tags: [k3s_install]
|
|
|
|
- name: Run the k3s install script
|
|
ansible.builtin.command: /tmp/k3s-install.sh
|
|
environment:
|
|
INSTALL_K3S_VERSION: "{{ k3s_version }}"
|
|
INSTALL_K3S_EXEC: "server {{ '--disable traefik' if k3s_disable_traefik else '' }}"
|
|
when: not k3s_install_binary.stat.exists
|
|
changed_when: true
|
|
tags: [k3s_install]
|
|
|
|
- name: Remove the k3s install script
|
|
ansible.builtin.file:
|
|
path: /tmp/k3s-install.sh
|
|
state: absent
|
|
tags: [k3s_install]
|
|
|
|
- name: Enable and start k3s
|
|
ansible.builtin.systemd:
|
|
name: k3s
|
|
enabled: true
|
|
state: started
|
|
tags: [k3s_install]
|
|
|
|
- name: Wait for the Kubernetes API to accept connections
|
|
ansible.builtin.wait_for:
|
|
port: 6443
|
|
host: 127.0.0.1
|
|
timeout: 180
|
|
tags: [k3s_install]
|
|
|
|
- name: Wait for the node to reach Ready status
|
|
ansible.builtin.command: /usr/local/bin/k3s kubectl wait node --for=condition=Ready --all --timeout=180s
|
|
register: k3s_install_node_ready
|
|
changed_when: false
|
|
retries: 3
|
|
delay: 15
|
|
until: k3s_install_node_ready.rc == 0
|
|
tags: [k3s_install]
|
|
|
|
- name: Make the kubeconfig readable for subsequent Kubernetes modules
|
|
ansible.builtin.file:
|
|
path: /etc/rancher/k3s/k3s.yaml
|
|
owner: root
|
|
group: root
|
|
mode: "0600"
|
|
tags: [k3s_install]
|