# Nomadesk Private Cloud Software Appliance Kickstart File # # Kickstart Syntax Documentation: # - https://docs.fedoraproject.org/en-US/fedora/f36/install-guide/appendixes/Kickstart_Syntax_Reference/ # # Partitioning section %include /root/disk_include # Clear the Master Boot Record zerombr # Install source #url (optional) - Install from an installation tree on a remote server via FTP or HTTP. url --url="https://repo.nomadesk.com/mirror/almalinux/9/baseos" #repo (optional) - Configure Additional Repositories repo --name=AppStream --baseurl="https://repo.nomadesk.com/mirror/almalinux/9/appstream" #epel mirror repo --name=Epel --baseurl="https://repo.nomadesk.com/mirror/almalinux/9/epel" #nomadesk RPM repository repo --name=Nomadesk --baseurl="https://repo.nomadesk.com/repository/docker/production" #graphical (optional) - Perform Installation in Graphical Mode graphical #firewall (optional) - Configure Firewall firewall --enabled --port=22 --port=80 --port=443 --port=8181 --port=9090 --port=6443 #firstboot (optional) - Enable or Disable Initial Setup firstboot --reconfig #accept the eula eula --agreed # Keyboard layouts keyboard --vckeymap=us --xlayouts='us' # System language lang en_US.UTF-8 # System authorization information #auth --enableshadow --enablemd5 # network (optional) - Configure Network Interfaces network --bootproto=dhcp --device=ens160 --ipv6=auto --activate #network --hostname=nomadesk.local # System timezone timesource --ntp-server=pool.ntp.org timezone --utc Europe/Brussels # Root password rootpw $1$IEpUBTKx$ndrZS30l6rM9xqr2o5cT00 --iscrypted shutdown # X Window System configuration information xconfig --startxonboot %packages @base @core @^minimal-environment chrony vim-enhanced epel-release nomadesk-installer %end %pre SDA_COUNT=$(lsblk -nd -o name,type | grep "disk" | grep sd | wc -l) VDA_COUNT=$(lsblk -nd -o name,type | grep "disk" | grep vd | wc -l) BOOT_DISK="" DATA_DISK="" if [ $VDA_COUNT -gt 0 ]; then BOOT_DISK=$(lsblk -nd -o name,type | grep "disk" | grep vd | sort | head -n 1 | awk '{print $1}') if [ $VDA_COUNT -gt 1 ]; then DATA_DISK=$(lsblk -nd -o name,type | grep "disk" | grep vd | sort | sed -n 2p | awk '{print $1}') fi fi if [ $SDA_COUNT -gt 0 ]; then BOOT_DISK=$(lsblk -nd -o name,type | grep "disk" | grep sd | sort | head -n 1 | awk '{print $1}') if [ $SDA_COUNT -gt 1 ]; then DATA_DISK=$(lsblk -nd -o name,type | grep "disk" | grep sd | sort | sed -n 2p | awk '{print $1}') fi fi if [ -z $BOOT_DISK ]; then echo "Failed to find disk (sda/vda)" exit 1 fi touch /root/disk_include if [ -z $DATA_DISK ]; then echo "autopart --type=lvm --fstype=ext4" >> /root/disk_include echo "clearpart --all --initlabel --drives=$BOOT_DISK" >> /root/disk_include echo "ignoredisk --only-use=$BOOT_DISK" >> /root/disk_include else echo "clearpart --all --initlabel --drives=${BOOT_DISK},${DATA_DISK}" >> /root/disk_include echo "part /boot --fstype="ext4" --size=500 --ondisk=${BOOT_DISK}" >> /root/disk_include echo "part swap --size=2048 --ondisk=${BOOT_DISK}" >> /root/disk_include echo "part / --fstype="ext4" --grow --ondisk=${BOOT_DISK}" >> /root/disk_include if [ -d "/sys/firmware/efi" ]; then echo "part /boot/efi --fstype=efi --ondisk=${BOOT_DISK} --size=600 --fsoptions=\"umask=0077\"" >> /root/disk_include fi echo "part /mnt/data --fstype="ext4" --grow --ondisk=${DATA_DISK}" >> /root/disk_include fi echo "bootloader --append=\" crashkernel=auto\" --location=mbr --boot-drive=$BOOT_DISK" >> /root/disk_include %end %post --interpreter=/usr/bin/bash --log=/root/ks-post-chroot.log # lock root account passwd -l root # Update Repository URLs sed -i 's/.*baseurl=.*BaseOS\/$basearch\/os\//baseurl=https:\/\/repo.nomadesk.com\/mirror\/almalinux\/9\/BaseOS\//g' /etc/yum.repos.d/almalinux-baseos.repo sed -i '/mirrorlist=.*baseos$/s/^/#/' /etc/yum.repos.d/almalinux-baseos.repo sed -i 's/.*baseurl=.*AppStream\/$basearch\/os\//baseurl=https:\/\/repo.nomadesk.com\/mirror\/almalinux\/9\/AppStream\//g' /etc/yum.repos.d/almalinux-appstream.repo sed -i '/mirrorlist=.*appstream$/s/^/#/' /etc/yum.repos.d/almalinux-appstream.repo sed -i 's/.*baseurl=.*extras\/$basearch\/os\//baseurl=https:\/\/repo.nomadesk.com\/mirror\/almalinux\/9\/extras\//g' /etc/yum.repos.d/almalinux-extras.repo sed -i '/mirrorlist=.*extras$/s/^/#/' /etc/yum.repos.d/almalinux-extras.repo sed -i 's/.*baseurl=.*Everything\/$basearch\//baseurl=https:\/\/repo.nomadesk.com\/mirror\/almalinux\/9\/epel\//g' /etc/yum.repos.d/epel.repo sed -i '/metalink=.*epel-$releasever.*/s/^/#/' /etc/yum.repos.d/epel.repo cat << EOF > /etc/yum.repos.d/nomadesk.repo [Nomadesk] name=Nomadesk enabled=1 baseurl=https://repo.nomadesk.com/repository/docker/production gpgcheck=1 gpgkey=https://repo.nomadesk.com/repository/RPM-GPG-KEY [Nomadesk-Epel] name=Nomadesk Epel enabled=1 baseurl=https://repo.nomadesk.com/mirror/almalinux/9/epel gpgcheck=1 gpgkey=https://repo.nomadesk.com/repository/RPM-GPG-KEY EOF dnf config-manager --set-disabled epel-cisco-openh264 # Firewall rules firewall-offline-cmd --zone=trusted --add-source=10.42.0.0/16 #pods firewall-offline-cmd --zone=trusted --add-source=10.43.0.0/16 #services # Run k3s installer INSTALL_K3S_SKIP_START=true /usr/lib/nomadesk/installer/lib/install.sh cat << EOF > /etc/nomadesk/nomadesk.ini [Nomadesk] installationMethod=Auto EOF %end