Home K8S setup

This commit is contained in:
2021-03-13 00:23:06 +00:00
commit 8a5296a104
47 changed files with 3098 additions and 0 deletions
+94
View File
@@ -0,0 +1,94 @@
---
- name: Install packages - filesystem
ansible.builtin.package:
name:
- e2fsprogs
- parted
state: present
- name: Create partition for perm data
community.general.parted:
device: /dev/mmcblk0
number: 2
fs_type: ext4
part_start: 1GiB
part_end: 100%
flags: [ boot ]
state: present
- name: Fomat perm data partition
community.general.filesystem:
dev: /dev/mmcblk0p2
fstype: ext4
ignore_errors: yes
- name: Re-mount old data partition
ansible.posix.mount:
path: /media/mmcblk0p1
src: /dev/mmcblk0p1
opts: rw
state: remounted
- name: Mount perm data partition
ansible.posix.mount:
path: /mnt
src: /dev/mmcblk0p2
opts: rw
fstype: ext4
state: mounted
- name: Overwrite setup-disk
ansible.builtin.copy:
src: static/setup-disk
dest: /sbin/setup-disk
owner: root
group: root
mode: '0744'
backup: yes
- name: Setup new disk as system
ansible.builtin.command:
cmd: setup-disk -m sys /mnt
creates: /mnt/bin/date
- name: Housekeeping
ansible.builtin.shell:
cmd: |
rm -f /media/mmcblk0p1/boot/*
cd /mnt
rm boot/boot
mv boot/* /media/mmcblk0p1/boot/
rm -Rf boot
mkdir media/mmcblk0p1
ln -s media/mmcblk0p1/boot boot
removes: /mnt/boot/boot
- name: Add mountpoints to fstab
ansible.builtin.shell:
cmd: |
echo "/dev/mmcblk0p1 /media/mmcblk0p1 vfat defaults 0 0" >> etc/fstab
echo "/dev/mmcblk0p1 /media/mmcblk0p1 vfat defaults 0 0" >> /etc/fstab
sed -i '/cdrom/d' etc/fstab
sed -i '/floppy/d' etc/fstab
sed -i '/usbdisk/d' etc/fstab
touch /mnt/.nvm_mountpoints
chdir: /mnt
creates: /mnt/.nvm_mountpoints
- name: Enable repositories and cgroups
ansible.builtin.shell:
cmd: |
sed -i '/edge/s/^#//' /mnt/etc/apk/repositories
sed -i 's/^/root=\/dev\/mmcblk0p2 /' /media/mmcblk0p1/cmdline.txt
echo "cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1" >> /media/mmcblk0p1/cmdline.txt
sed -i ':a;N;$!ba;s/\n/ /g' /media/mmcblk0p1/cmdline.txt
touch /mnt/.nvm_cgroups
creates: /mnt/.nvm_cgroups
- name: Commit changes
ansible.builtin.shell:
chdir: /media/mmcblk0p1
cmd: lbu_commit -d || true
- name: Reboot
reboot:
+11
View File
@@ -0,0 +1,11 @@
---
- name: Pull basic images
ansible.builtin.shell:
cmd: kubeadm config images pull
- name: Install helm
ansible.builtin.shell:
cmd: |
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
creates: /etc/kubernetes/kubelet.conf
register: k8sinit_output
+9
View File
@@ -0,0 +1,9 @@
---
- name: Check for base system config lockfile
stat: path="/mnt/.nvm_mountpoints"
register: basic_config_lock
- include: filesystem.yml
when: basic_config_lock.stat.exists == False
- include: networking.yml
- include: kubernetes.yml
- include: nfs.yml
+68
View File
@@ -0,0 +1,68 @@
---
- name: Set hostname
ansible.builtin.hostname:
name: '{{ inventory_hostname }}'
- name: "Build hosts file"
lineinfile:
dest: /etc/hosts
regexp: '.*{{ item }}$'
line: "{{hostvars[item]['ansible_default_ipv4']['address']}} {{item}} {{item}}.local"
state: present
register: etchostsupdate
when: hostvars[item]['ansible_facts']['default_ipv4'] is defined
with_items:
- "{{ groups['all'] }}"
- name: Install packages for networking
ansible.builtin.package:
name:
- dbus
- avahi
- kubernetes
- kubectl
- docker
- cni-plugins
- kubelet
- kubeadm
- sudo
- curl
state: present
- name: Enable service dbus
ansible.builtin.service:
name: dbus
state: started
enabled: yes
- name: Overwrite avahi config
ansible.builtin.copy:
src: static/avahi-config
dest: /etc/avahi/avahi-daemon.conf
owner: root
group: root
mode: '0644'
backup: yes
- name: Enable service avahi
ansible.builtin.service:
name: avahi-daemon
state: restarted
enabled: yes
- name: Enable service docker
ansible.builtin.service:
name: docker
state: started
enabled: yes
- name: Enable service kubelet
ansible.builtin.service:
name: kubelet
state: started
enabled: yes
- name: Enable promisc mode for ARP requests
ansible.builtin.shell:
cmd: |
ip link set eth0 promisc on
+34
View File
@@ -0,0 +1,34 @@
---
- name: Install nfsprogs
ansible.builtin.package:
name:
- nfs-utils
- name: Prepare nfs mountpoint
ansible.builtin.shell:
cmd: |
mkdir -p /media/nfs
- name: Mount NFS resources
ansible.posix.mount:
src: "{{settings.nfs_host}}:{{settings.nfs_multi_share_path}}"
path: /media/nfs
fstype: nfs
opts: nofail,noatime,nolock,tcp,actimeo=1800
state: mounted
- name: Mount NFS torrent
ansible.posix.mount:
src: "{{settings.nfs_host}}:{{settings.nfs_torrent_path}}"
path: /mnt/drobo-storage/docker-volumes/torrent
fstype: nfs
opts: nofail,noatime,nolock,tcp,actimeo=1800
state: mounted
- name: Mount NFS adguard
ansible.posix.mount:
src: "{{settings.nfs_host}}:{{settings.nfs_adguard_path}}"
path: /mnt/drobo-storage/docker-volumes/adguard
fstype: nfs
opts: nofail,noatime,nolock,tcp,actimeo=1800
state: mounted