121 lines
3.9 KiB
YAML
121 lines
3.9 KiB
YAML
---
|
|
- name: Install k8s
|
|
become: true
|
|
hosts: all
|
|
|
|
vars:
|
|
arch: amd64
|
|
os: Debian_12
|
|
codename: bookworm
|
|
k8s_version: 1.26
|
|
|
|
environment:
|
|
KUBECONFIG: /etc/kubernetes/admin.conf
|
|
|
|
tasks:
|
|
- name: Fix hostname
|
|
copy:
|
|
dest: /etc/hostname
|
|
content: |
|
|
{{ inventory_hostname | regex_replace('.*@', '') | regex_replace('\..*$', '') }}
|
|
|
|
- name: Copy conf
|
|
copy:
|
|
src: rootfs/
|
|
dest: /
|
|
|
|
- name: Add {{ codename }} repo
|
|
copy:
|
|
dest: /etc/apt/sources.list
|
|
content: |
|
|
deb http://deb.debian.org/debian {{ codename }} main
|
|
deb-src http://deb.debian.org/debian {{ codename }} main
|
|
deb http://deb.debian.org/debian-security/ {{ codename }}-security main
|
|
deb-src http://deb.debian.org/debian-security/ {{ codename }}-security main
|
|
deb http://deb.debian.org/debian {{ codename }}-updates main
|
|
deb-src http://deb.debian.org/debian {{ codename }}-updates main
|
|
deb http://deb.debian.org/debian {{ codename }}-backports main
|
|
deb-src http://deb.debian.org/debian {{ codename }}-backports main
|
|
|
|
- name: Upgrade
|
|
apt:
|
|
update_cache: true
|
|
cache_valid_time: 86400 # 60s * 60m * 24h
|
|
upgrade: dist
|
|
autoremove: true
|
|
purge: true
|
|
|
|
- name: Install deps
|
|
apt:
|
|
name:
|
|
- gpg
|
|
- kubectx
|
|
- vim
|
|
|
|
- name: Add libcontainers public key (CRI-O)
|
|
apt_key:
|
|
url: "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/{{ os }}/Release.key"
|
|
keyring: /etc/apt/keyrings/libcontainers.gpg
|
|
- name: Add libcontainers-crio public key (CRI-O)
|
|
apt_key:
|
|
url: "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/{{ k8s_version }}/{{ os }}/Release.key"
|
|
keyring: /etc/apt/keyrings/libcontainers-crio.gpg
|
|
- name: Add k8s public key
|
|
apt_key:
|
|
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
|
|
keyring: /etc/apt/keyrings/kubernetes.gpg
|
|
|
|
- name: Add libcontainers repo (CRI-O)
|
|
apt_repository:
|
|
repo: "deb [signed-by=/etc/apt/keyrings/libcontainers.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/{{ os }}/ /"
|
|
filename: libcontainers
|
|
|
|
- name: Add libcontainers-crio repo (CRI-O)
|
|
apt_repository:
|
|
repo: "deb [signed-by=/etc/apt/keyrings/libcontainers-crio.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/{{ k8s_version }}/{{ os }}/ /"
|
|
filename: libcontainers-crio
|
|
|
|
- name: Add k8s repo
|
|
apt_repository:
|
|
repo: "deb [signed-by=/etc/apt/keyrings/kubernetes.gpg] https://apt.kubernetes.io/ kubernetes-xenial main"
|
|
filename: kubernetes
|
|
|
|
- name: Install k8s
|
|
apt:
|
|
name:
|
|
- cri-o
|
|
- cri-o-runc
|
|
- kubeadm={{ k8s_version}}*
|
|
- kubectl={{ k8s_version}}*
|
|
- kubelet={{ k8s_version}}*
|
|
update_cache: true
|
|
allow_change_held_packages: true
|
|
- name: Hold k8s pkg
|
|
shell: apt-mark hold cri-o cri-o-runc kubeadm kubectl kubelet
|
|
- name: Install crictl
|
|
unarchive:
|
|
remote_src: yes
|
|
src: "https://github.com/kubernetes-sigs/cri-tools/releases/download/v{{ k8s_version }}.0/crictl-v{{ k8s_version }}.0-linux-{{ arch }}.tar.gz"
|
|
dest: /usr/local/bin/
|
|
mode: 755
|
|
|
|
- name: Enable crio service
|
|
service:
|
|
name: crio.service
|
|
enabled: true
|
|
|
|
- name: Reboot
|
|
reboot:
|
|
|
|
#- name: Init k8s
|
|
# shell: kubeadm init --pod-network-cidr=10.244.0.0/16 --control-plane-endpoint=k8s.gmoker.com
|
|
#- name: Remove master node taint
|
|
# shell: kubectl taint node --all node-role.kubernetes.io/control-plane:NoSchedule-
|
|
#- name: Apply flannel
|
|
# shell: kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
|
|
#- name: Apply nginx ingress
|
|
# shell: kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml
|
|
|
|
#- name: Reboot
|
|
# reboot:
|