Even more alpine fixes (#492)

This commit is contained in:
Itxaka
2023-10-17 10:31:09 +02:00
committed by GitHub
parent 0bf3826ad0
commit 9b49d6aacd
7 changed files with 43 additions and 36 deletions

View File

@@ -1,4 +1,4 @@
packages: packages:
- name: "kairos-overlay-files" - name: "kairos-overlay-files"
category: "static" category: "static"
version: "1.1.2" version: "1.1.3"

View File

@@ -48,6 +48,9 @@ stages:
commands: commands:
- chown -R root:admin /usr/local/cloud-config - chown -R root:admin /usr/local/cloud-config
- chmod 770 /usr/local/cloud-config - chmod 770 /usr/local/cloud-config
initramfs.after:
# Run this in the after stage so it doesnt collide with other initramfs changes to the /etc/inittab
# Otherwise this can lead to 2 steps modifying the inittab at the same time and overriding or not cleaning it properly
- name: "Enable serial login for alpine" # https://wiki.alpinelinux.org/wiki/Enable_Serial_Console_on_Boot - name: "Enable serial login for alpine" # https://wiki.alpinelinux.org/wiki/Enable_Serial_Console_on_Boot
if: '[ -e /sbin/openrc ]' if: '[ -e /sbin/openrc ]'
commands: commands:

View File

@@ -2,7 +2,7 @@ name: "Root autologin"
stages: stages:
initramfs: initramfs:
- if: | - if: |
[ ! $(cat /proc/cmdline | grep -q "interactive-install") ] && \ grep -qv "interactive-install" /proc/cmdline && \
[ -f /run/cos/live_mode ] && \ [ -f /run/cos/live_mode ] && \
( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] ) ( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] )
files: files:
@@ -18,3 +18,18 @@ stages:
ExecStart= ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I $TERM ExecStart=-/sbin/agetty --autologin root --noclear %I $TERM
permissions: 0644 permissions: 0644
- name: "Autologin on livecd for OpenRC"
if: |
grep -qv "interactive-install" /proc/cmdline ] && \
[ -f /run/cos/live_mode ] && \
[ -f "/sbin/openrc" ]
files:
- path: /etc/motd
content: |
You are booting from livecd mode. Run 'kairos-agent install' to install the system.
permissions: 0644
- path: /etc/inittab
content: |
tty1::respawn:/sbin/agetty --autologin root -i --noclear tty1
ttyS0::respawn:/sbin/agetty --autologin root -i --noclear ttyS0
permissions: 0644

View File

@@ -1,7 +0,0 @@
stages:
initramfs.before:
- name: "Setup hybrid cgroups"
if: '[ -e /etc/rc.conf ]'
commands:
- echo 'rc_cgroup_mode="hybrid"' >> /etc/rc.conf
- echo 'rc_cgroup_controllers="cpuset cpu io memory hugetlb pids"' >> /etc/rc.conf

View File

@@ -3,18 +3,16 @@ stages:
initramfs: initramfs:
- name: "Starts kairos-recovery and generate a temporary pass" - name: "Starts kairos-recovery and generate a temporary pass"
if: | if: |
cat /proc/cmdline | grep -q "kairos.remote_recovery_mode" grep -q "kairos.remote_recovery_mode" /proc/cmdline && \
( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] )
commands: commands:
- systemctl disable getty@tty1 - systemctl disable getty@tty1
- systemctl enable kairos-recovery - systemctl enable kairos-recovery
# Starts installer on boot in Alpine and openRC based - name: "Starts kairos-recovery for openRC based systems"
- name: "Starts kairos-recovery with openRC-based systems" if: grep -q "kairos.remote_recovery_mode" /proc/cmdline && [ -f "/sbin/openrc" ]
if: |
[ -f "/etc/inittab" ] && \
( cat /proc/cmdline | grep -q "kairos.remote_recovery_mode" )
commands: commands:
- sed -i -e 's/tty1.*//g' /etc/inittab - sed -i -e 's/tty1.*//g' /etc/inittab
- echo "tty1::respawn:/usr/bin/kairos-agent recovery" >> /etc/inittab - echo "tty1::respawn:/usr/bin/kairos-agent recovery tty1" >> /etc/inittab
boot: boot:
- name: "Recovery" - name: "Recovery"
if: '[ -f "/run/cos/recovery_mode" ]' if: '[ -f "/run/cos/recovery_mode" ]'

View File

@@ -1,17 +1,13 @@
name: "Start reset on tty1" name: "Start reset on tty1"
stages: stages:
initramfs: initramfs:
- name: "Starts kairos-reset" - name: "Starts kairos-reset for systemd based systems"
if: | if: grep -q "kairos.reset" /proc/cmdline && [ ! -f "/sbin/openrc" ]
cat /proc/cmdline | grep -q "kairos.reset"
commands: commands:
- systemctl disable getty@tty1 - systemctl disable getty@tty1
- systemctl enable kairos-reset - systemctl enable kairos-reset
# Starts installer on boot in Alpine and openRC based - name: "Starts kairos-reset for openRC-based systems"
- name: "Starts kairos-reset with openRC-based systems" if: grep -q "kairos.reset" /proc/cmdline && [ -f "/sbin/openrc" ]
if: |
[ -f "/etc/inittab" ] && \
( cat /proc/cmdline | grep -q "kairos.reset" )
commands: commands:
- sed -i -e 's/tty1.*//g' /etc/inittab - sed -i -e 's/tty1.*//g' /etc/inittab
- echo "tty1::respawn:/usr/bin/kairos-agent reset" >> /etc/inittab - echo "tty1::respawn:/usr/bin/kairos-agent reset tty1" >> /etc/inittab

View File

@@ -2,34 +2,36 @@ name: "Start installer on tty1"
stages: stages:
initramfs: initramfs:
- if: | - if: |
cat /proc/cmdline | grep -q "nodepair.enable" grep -q "nodepair.enable" /proc/cmdline && \
( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] )
commands: commands:
- systemctl disable getty@tty1 - systemctl disable getty@tty1
- systemctl enable kairos - systemctl enable kairos
- systemctl enable kairos-webui - systemctl enable kairos-webui
# Starts installer on boot in Alpine and openRC based # Starts installer on boot for openRC based systems
- if: | - if: grep -q "nodepair.enable" /proc/cmdline && [ -f "/sbin/openrc" ]
cat /proc/cmdline | grep -q "nodepair.enable"
commands: commands:
- sed -i -e 's/tty1.*//g' /etc/inittab - sed -i -e 's/tty1.*//g' /etc/inittab
- echo "tty1::respawn:/usr/bin/kairos-agent install" >> /etc/inittab - echo "tty1::respawn:/usr/bin/kairos-agent install tty1" >> /etc/inittab
# Starts installer on boot for systemd based systems
- if: | - if: |
cat /proc/cmdline | grep -q "interactive-install" grep -q "interactive-install" /proc/cmdline && \
( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] )
commands: commands:
- systemctl disable getty@tty1 - systemctl disable getty@tty1
- systemctl enable kairos-interactive - systemctl enable kairos-interactive
# Starts installer on boot in Alpine and openRC based # Starts installer on boot for openRC based systems
- if: | - if: grep -q "interactive-install" /proc/cmdline && [ -f "/sbin/openrc" ]
cat /proc/cmdline | grep -q "interactive-install"
commands: commands:
- sed -i -e 's/tty1.*//g' /etc/inittab - sed -i -e 's/tty1.*//g' /etc/inittab
- echo "tty1::respawn:/usr/bin/kairos-agent interactive-install --shell" >> /etc/inittab - echo "tty1::respawn:/usr/bin/kairos-agent interactive-install --shell tty1" >> /etc/inittab
boot: boot:
- if: | - if: |
[ "$(kairos-agent state get boot)" == "livecd_boot" ] && [ -f "/sbin/rc-service" ] [ "$(kairos-agent state get boot)" == "livecd_boot" ] && [ -f "/sbin/rc-service" ]
commands: commands:
- rc-service kairos-webui start - rc-service kairos-webui start
- if: | - if: |
[ "$(kairos-agent state get boot)" == "livecd_boot" ] && [ -d "/usr/share/systemd" ] [ "$(kairos-agent state get boot)" == "livecd_boot" ] && \
( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] )
commands: commands:
- systemctl start kairos-webui - systemctl start kairos-webui