From 057b3bfc075946934c5237b7c1f6323335963924 Mon Sep 17 00:00:00 2001 From: Assaf Sapir Date: Wed, 8 Nov 2023 20:31:51 +0200 Subject: [PATCH] Add archlinux (aarch64) support (#146) * Add archlinux (aarch64) support Signed-off-by: Assaf Sapir --- README.md | 1 + roles/prereq/tasks/main.yml | 6 +++--- roles/raspberrypi/tasks/main.yml | 8 ++++++++ roles/raspberrypi/tasks/prereq/Archlinux.yml | 14 ++++++++++++++ 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 roles/raspberrypi/tasks/prereq/Archlinux.yml diff --git a/README.md b/README.md index 6f3286d..672753a 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Build a Kubernetes cluster using Ansible with k3s. The goal is easily install a - [X] Debian - [X] Ubuntu - [X] CentOS +- [X] ArchLinux on processor architecture: diff --git a/roles/prereq/tasks/main.yml b/roles/prereq/tasks/main.yml index 1a70225..f6b7416 100644 --- a/roles/prereq/tasks/main.yml +++ b/roles/prereq/tasks/main.yml @@ -24,13 +24,13 @@ content: "br_netfilter" dest: /etc/modules-load.d/br_netfilter.conf mode: "u=rw,g=,o=" - when: ansible_distribution in ['CentOS', 'Red Hat Enterprise Linux','RedHat'] + when: ansible_distribution in ['CentOS', 'Red Hat Enterprise Linux', 'RedHat', 'Archlinux'] - name: Load br_netfilter community.general.modprobe: name: br_netfilter state: present - when: ansible_distribution in ['CentOS', 'Red Hat Enterprise Linux','RedHat'] + when: ansible_distribution in ['CentOS', 'Red Hat Enterprise Linux', 'RedHat', 'Archlinux'] - name: Set bridge-nf-call-iptables (just to be sure) ansible.posix.sysctl: @@ -38,7 +38,7 @@ value: "1" state: present reload: true - when: ansible_distribution in ['CentOS', 'Red Hat Enterprise Linux','RedHat'] + when: ansible_distribution in ['CentOS', 'Red Hat Enterprise Linux', 'RedHat', 'Archlinux'] loop: - net.bridge.bridge-nf-call-iptables - net.bridge.bridge-nf-call-ip6tables diff --git a/roles/raspberrypi/tasks/main.yml b/roles/raspberrypi/tasks/main.yml index d523307..5351507 100644 --- a/roles/raspberrypi/tasks/main.yml +++ b/roles/raspberrypi/tasks/main.yml @@ -33,6 +33,14 @@ ( ansible_facts.lsb.id|default("") == "Debian" or ansible_facts.lsb.description|default("") is match("Debian") ) +- name: Set detected_distribution to ArchLinux (ARM64) + set_fact: + detected_distribution: Archlinux + when: + - ansible_facts.architecture is search("aarch64") + - raspberry_pi|default(false) + - ansible_facts.os_family is match("Archlinux") + - name: Set detected_distribution_major_version ansible.builtin.set_fact: detected_distribution_major_version: "{{ ansible_facts.lsb.major_release }}" diff --git a/roles/raspberrypi/tasks/prereq/Archlinux.yml b/roles/raspberrypi/tasks/prereq/Archlinux.yml new file mode 100644 index 0000000..8251abb --- /dev/null +++ b/roles/raspberrypi/tasks/prereq/Archlinux.yml @@ -0,0 +1,14 @@ +--- +- name: Enable cgroup via boot commandline if not already enabled for Archlinux + lineinfile: + path: /boot/boot.txt + search_string: setenv bootargs console=ttyS1,115200 console=tty0 root=PARTUUID=${uuid} rw rootwait smsc95xx.macaddr="${usbethaddr}" + line: setenv bootargs console=ttyS1,115200 console=tty0 root=PARTUUID=${uuid} rw rootwait smsc95xx.macaddr="${usbethaddr}" cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory + register: kernel_cmdline_cgroup + +- name: Create + shell: ./mkscr + args: + chdir: /boot + notify: reboot + when: kernel_cmdline_cgroup.changed