[ONE images] refresh archlinux image

This commit is contained in:
fnux 2024-04-02 13:40:21 +02:00
parent 7f735f515e
commit 2659ec10c9
No known key found for this signature in database
GPG key ID: 4502C902C00A1E12

View file

@ -13,8 +13,8 @@ IMAGE_PATH=arch-$(date --iso-8601).img.qcow2
IMAGE_SIZE=10G
NBD_DEVICE=/dev/nbd0
ONE_CONTEXT_VERSION=6.0.0
ONE_CONTEXT_SOURCE_ARCHIVE="https://github.com/OpenNebula/addon-context-linux/archive/v$ONE_CONTEXT_VERSION.tar.gz"
ONE_CONTEXT_VERSION=6.8.1
ONE_CONTEXT_SOURCE_ARCHIVE="https://github.com/OpenNebula/one-apps/archive/refs/tags/v${ONE_CONTEXT_VERSION:?}.tar.gz"
cleanup() {
# The order here is important.
@ -96,76 +96,74 @@ EOF
cat > /mnt/etc/pacman.d/mirrorlist << EOF
##
## Arch Linux repository mirrorlist
## Generated on 2020-05-12
## Generated on 2024-03-07
##
## Switzerland
Server = http://pkg.adfinis-sygroup.ch/archlinux/\$repo/os/\$arch
Server = https://pkg.adfinis-sygroup.ch/archlinux/\$repo/os/\$arch
Server = http://pkg.adfinis.com/archlinux/\$repo/os/\$arch
Server = https://pkg.adfinis.com/archlinux/\$repo/os/\$arch
Server = http://mirror.init7.net/archlinux/\$repo/os/\$arch
Server = https://mirror.init7.net/archlinux/\$repo/os/\$arch
Server = http://mirror.metanet.ch/archlinux/\$repo/os/\$arch
Server = https://mirror.metanet.ch/archlinux/\$repo/os/\$arch
Server = http://mirror.puzzle.ch/archlinux/\$repo/os/\$arch
Server = https://mirror.puzzle.ch/archlinux/\$repo/os/\$arch
Server = https://mirror.ungleich.ch/mirror/packages/archlinux/\$repo/os/\$arch
EOF
run_root pacman -Syu
#run_root pacman --sync --refresh --upgrade
# Guest networking is to be handled by the one-context package.
# See https://github.com/OpenNebula/addon-context-linux for details.
run_root pacman -Sy curl tar rsync --noconfirm
run_root curl -L "$ONE_CONTEXT_SOURCE_ARCHIVE" -o one-context.tar.gz
run_root tar xf one-context.tar.gz
run_root rsync -avrh addon-context-linux-${ONE_CONTEXT_VERSION}/src/* /
#run_root cp -rT addon-context-linux-${ONE_CONTEXT_VERSION}/src/ /
run_root rm -r addon-context-linux-${ONE_CONTEXT_VERSION}
run_root cp -r /usr/lib/systemd/system/one-context.service##arch.one /usr/lib/systemd/system/one-context.service
run_root systemctl enable one-context.service
run_root pacman -Syu --noconfirm
# Initalize base services.
run_root systemd-machine-id-setup
run_root ln -sf /usr/share/zoneinfo/UTC /etc/localtime
run_root systemctl enable systemd-timesyncd.service
#run_root pacman -Q linux
# Install kernel and generate initramfs.
run_root pacman -Sy linux --noconfirm
run_root rsync -avrh /usr/lib/modules/ /lib/modules
#run_root pacman -Sy linux
run_root pacman -Sy mkinitcpio --noconfirm
#run_root pacman -S linux
run_root mkinitcpio -P
# Install and configure bootloader.
run_root pacman -Sy grub --noconfirm
run_root grub-install --target=i386-pc "${NBD_DEVICE}"
#run_root sed -i 's/^GRUB_CMDLINE_LINUX=.*$/GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"/' /etc/default/grub
run_root grub-mkconfig -o /boot/grub/grub.cfg
# Install en configure SSH daemon.
run_root pacman -Sy openssh netctl --noconfirm
# Install haveged due to lack of entropy in ONE environment.
run_root pacman -Sy haveged --noconfirm
run_root systemctl enable haveged.service
run_root systemctl enable sshd
run_root systemctl enable systemd-networkd
run_root systemctl enable systemd-resolved
run_root systemctl enable systemd-timesyncd
# Generate fstab file.
boot_uuid=$(blkid --match-tag UUID --output value "${NBD_DEVICE}p1")
root_uuid=$(blkid --match-tag UUID --output value "${NBD_DEVICE}p2")
cat >>/mnt/etc/fstab <<EOF
UUID=$boot_uuid /boot ext4 rw,relatime,data=ordered 0 2
UUID=$root_uuid / ext4 rw,relatime,data=ordered 0 1
UUID=${boot_uuid:?} /boot ext4 rw,relatime,data=ordered 0 2
UUID=${root_uuid:?} / ext4 rw,relatime,data=ordered 0 1
EOF
# Guest networking is to be handled by the one-context package.
# See https://github.com/OpenNebula/one-apps for details.
run_root pacman -Sy curl tar rsync --noconfirm
run_root curl -L "$ONE_CONTEXT_SOURCE_ARCHIVE" -o one-context.tar.gz
run_root tar xf one-context.tar.gz
run_root rsync -ravh "one-apps-${ONE_CONTEXT_VERSION:?}/context-linux/src/"* /
run_root rm -r "one-apps-${ONE_CONTEXT_VERSION:?}"
run_root cp -r /usr/lib/systemd/system/one-context.service##arch.one /usr/lib/systemd/system/one-context.service
run_root systemctl enable one-context.service
run_root ln -sf /usr/share/zoneinfo/UTC /etc/localtime
run_root systemctl enable systemd-timesyncd.service
# Install kernel and generate initramfs.
run_root ln -s /usr/lib/modules /lib/modules
run_root pacman -Sy mkinitcpio linux linux-firmware --noconfirm
sed -i '/MODULES=/c\MODULES=(virtio virtio_blk virtio_pci virtio_net)' /mnt/etc/mkinitcpio.conf
run_root mkinitcpio -p linux
# Install and configure bootloader.
run_root pacman -Sy grub --noconfirm
run_root grub-install --target=i386-pc "${NBD_DEVICE}"
run_root grub-mkconfig -o /boot/grub/grub.cfg
# Install and configure a SSH daemon.
run_root pacman -Sy openssh netctl --noconfirm
run_root systemctl enable sshd
# Install haveged due to lack of entropy in ONE environment.
run_root pacman -Sy haveged --noconfirm
run_root systemctl enable haveged.service
# Make sure core services are enabled.
run_root systemctl enable systemd-networkd
run_root systemctl enable systemd-resolved
run_root systemctl enable systemd-timesyncd
# Reset systemd's environment.
run_root rm -f /etc/machine-id
run_root touch /etc/machine-id
rm -f /var/lib/systemd/random-seed
echo "arch" > /mnt/etc/hostname
# Make sure everything is written to disk before exiting.
sync