From 9e3bc844c3d088b25bd8d449a4d80017d0bb3b93 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 1 Oct 2016 19:17:54 +0200 Subject: made a version with virt-install (libvirtd) --- Attic/archauto.sh | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100755 Attic/archauto.sh (limited to 'Attic/archauto.sh') diff --git a/Attic/archauto.sh b/Attic/archauto.sh new file mode 100755 index 0000000..9feca5e --- /dev/null +++ b/Attic/archauto.sh @@ -0,0 +1,140 @@ +#!/bin/bash -x + +{ + +INSTALL_DRIVE=/dev/sda +PARTITION_BOOT=1 +PARTITION_SWAP=2 +PARTITION_ROOT=3 +LABEL_BOOT=BOOT +LABEL_SWAP=SWAP +LABEL_ROOT=ROOT +MOUNT_PATH=/mnt +GIT_REPO=git://andreasbaumann.dyndns.org/cfenginetests.git + +echo "Installing minimalistic base system.." + +sgdisk -Z ${INSTALL_DRIVE} +sgdisk -a 2048 -o ${INSTALL_DRIVE} + +sgdisk -n ${PARTITION_BOOT}:0:+100M ${INSTALL_DRIVE} +sgdisk -t ${PARTITION_BOOT}:ef02 ${INSTALL_DRIVE} +sgdisk -c ${PARTITION_BOOT}:"${LABEL_BOOT}" ${INSTALL_DRIVE} + +sgdisk -n ${PARTITION_SWAP}:0:+900M ${INSTALL_DRIVE} +sgdisk -t ${PARTITION_SWAP}:8200 ${INSTALL_DRIVE} +sgdisk -c ${PARTITION_SWAP}:"${LABEL_SWAP}" ${INSTALL_DRIVE} + +sgdisk -n ${PARTITION_ROOT}:0:0 ${INSTALL_DRIVE} +sgdisk -t ${PARTITION_ROOT}:8300 ${INSTALL_DRIVE} +sgdisk -c ${PARTITION_ROOT}:"${LABEL_ROOT}" ${INSTALL_DRIVE} + +sgdisk -G ${INSTALL_DRIVE} + +mkswap ${INSTALL_DRIVE}${PARTITION_SWAP} +swapon ${INSTALL_DRIVE}${PARTITION_SWAP} +mkfs.ext4 ${INSTALL_DRIVE}${PARTITION_ROOT} +#mkfs.ext4 ${INSTALL_DRIVE}${PARTITION_BOOT} + +mkdir -p ${MOUNT_PATH} +mount ${INSTALL_DRIVE}${PARTITION_ROOT} ${MOUNT_PATH} +#mkdir ${MOUNT_PATH}/boot +#mount ${INSTALL_DRIVE}${PARTITION_BOOT} ${MOUNT_PATH}/boot + +#export http_proxy=http://192.168.1.12:3128 +export no_proxy=localhost,10.0.2.2 + +# use our local cache +sed -i '/\[core\]/aServer = http://10.0.2.2:8080/$repo/os/$arch' /etc/pacman.conf +sed -i '/\[extra\]/aServer = http://10.0.2.2:8080/$repo/os/$arch' /etc/pacman.conf +sed -i '/\[community\]/aServer = http://10.0.2.2:8080/$repo/os/$arch' /etc/pacman.conf + +# switch off signature for now +sed -i 's/^SigLevel.*/SigLevel = Never/g' /etc/pacman.conf + +pacstrap ${MOUNT_PATH} filesystem grep findutils coreutils glibc bash pacman mkinitcpio linux dhcpcd systemd + +# use our local cache in installed pacman +sed -i '/\[core\]/aServer = http://10.0.2.2:8080/$repo/os/$arch' ${MOUNT_PATH}/etc/pacman.conf +sed -i '/\[extra\]/aServer = http://10.0.2.2:8080/$repo/os/$arch' ${MOUNT_PATH}/etc/pacman.conf +sed -i '/\[community\]/aServer = http://10.0.2.2:8080/$repo/os/$arch' ${MOUNT_PATH}/etc/pacman.conf + +# add our local packages into a separate repository +printf "\n[myrepo]\nServer = http://10.0.2.2:8080/\044repo/os/\044arch\n" >> ${MOUNT_PATH}/etc/pacman.conf + +# synchronize package databases for installed pacman +arch-chroot ${MOUNT_PATH} pacman -Sy + +# switch off signature for now in installed pacman +sed -i 's/^SigLevel.*/SigLevel = Never/g' ${MOUNT_PATH}/etc/pacman.conf + +arch-chroot ${MOUNT_PATH} pacman --noconfirm -S grub-bios sed +mkdir ${MOUNT_PATH}/boot/grub/locale/ +cp ${MOUNT_PATH}/usr/share/locale/en@quot/LC_MESSAGES/grub.mo ${MOUNT_PATH}/boot/grub/locale/en.mo +# disable quiet mode, set text mode instead of graphical mode +# also ban cirrus KVM +# set correct path of systemd binary (symlink /sbin/init has gone) +sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="modprobe.blacklist=cirrus init=\/usr\/lib\/systemd\/systemd console=ttyS0,9600n8"/g' ${MOUNT_PATH}/etc/default/grub +sed -i 's/GRUB_GFXMODE=auto/GRUB_GFXMODE=text/g' ${MOUNT_PATH}/etc/default/grub +sed -i 's/GRUB_TERMINAL_INPUT=console/GRUB_TERMINAL_INPUT=serial/g' ${MOUNT_PATH}/etc/default/grub +sed -i 's/#GRUB_TERMINAL_OUTPUT=console/GRUB_TERMINAL_OUTPUT=serial/g' ${MOUNT_PATH}/etc/default/grub +echo 'GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"' >> ${MOUNT_PATH}/etc/default/grub +arch-chroot ${MOUNT_PATH} grub-mkconfig -o /boot/grub/grub.cfg +arch-chroot ${MOUNT_PATH} grub-install --target=i386-pc --recheck ${INSTALL_DRIVE} + +genfstab -p ${MOUNT_PATH} >> ${MOUNT_PATH}/etc/fstab + +sed -i 's/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' ${MOUNT_PATH}/etc/locale.gen +arch-chroot ${MOUNT_PATH} locale-gen +echo LANG=en_US.UTF-8 > ${MOUNT_PATH}/etc/locale.conf + +ln -s /usr/share/zoneinfo/Europe/Zurich ${MOUNT_PATH}/etc/localtime +arch-chroot ${MOUNT_PATH} hwclock --systohc --utc + +echo "archiso" > ${MOUNT_PATH}/etc/hostname + +arch-chroot ${MOUNT_PATH} systemctl enable dhcpcd@ens3.service + +arch-chroot ${MOUNT_PATH} sh -c "echo 'root:123qwe' | chpasswd" + +# synchronized time is a requirement, install and configure ntp +# we use a standard NTP server, later we can change that via cfengine +# we don't have a network here (yet, still chrooted) +arch-chroot ${MOUNT_PATH} pacman --noconfirm -S ntp +#while ! ping -c1 0.pool.ntp.org &>/dev/null; do :; done +#arch-chroot ${MOUNT_PATH} ntpdate 0.pool.ntp.org +arch-chroot ${MOUNT_PATH} systemctl enable ntpd.service + +# monitord needs netstat +arch-chroot ${MOUNT_PATH} pacman --noconfirm -S net-tools + +# we use 'git' to manage our promises +arch-chroot ${MOUNT_PATH} pacman --noconfirm -S git + +arch-chroot ${MOUNT_PATH} pacman --noconfirm -S cfengine + +# install rules for the machine from git +# no net, must be done as cfengine rule, anyway, rule distribution should +# happen only on generated cfengine masters +#arch-chroot ${MOUNT_PATH} git clone ${GIT_REPO} /srv/cfengine/masterfiles + +# enable cfengine +arch-chroot ${MOUNT_PATH} systemctl enable cf-execd.service +arch-chroot ${MOUNT_PATH} systemctl enable cf-monitord.service +arch-chroot ${MOUNT_PATH} systemctl enable cf-serverd.service + +# for debugging +#echo "Installation.. press any key to reboot." +#read + +echo "Unmounting installation mount points.." +#umount ${MOUNT_PATH}/boot +umount ${MOUNT_PATH} + +echo "Done.. Rebooting system.." +sleep 3 + +systemctl reboot + +} 2>&1 | tee -a /dev/ttyS0 + -- cgit v1.2.3-54-g00ecf