mirror of
				https://pagure.io/fedora-kickstarts.git
				synced 2025-10-31 07:15:59 +00:00 
			
		
		
		
	Initial kickstart file for new Fedora Server VM image
This commit is contained in:
		
							parent
							
								
									edce50a60d
								
							
						
					
					
						commit
						96c9895671
					
				
							
								
								
									
										180
									
								
								fedora-server-vm-full.ks
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										180
									
								
								fedora-server-vm-full.ks
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,180 @@ | |||||||
|  | # fedora-server-vm-full.ks | ||||||
|  | # Kickstart file to build a Fedora Server Edition VM disk image. | ||||||
|  | # The image aims to resemble as close as technically possible the | ||||||
|  | # full features of a Fedora Server Edition in a virtual machine. | ||||||
|  | # | ||||||
|  | # At first boot it opens a test based basic configuration screen. | ||||||
|  | # | ||||||
|  | # This kickstart file is designed to be used with ImageFactory (in Koji). | ||||||
|  | # | ||||||
|  | # To build the image locally, you need to install ImageFactory and | ||||||
|  | # various additional helpers and configuration files. | ||||||
|  | # See Fedora Server Edition user documentation tutorial. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Keyboard layouts | ||||||
|  | keyboard 'us' | ||||||
|  | 
 | ||||||
|  | # Root password | ||||||
|  | rootpw --iscrypted --lock locked | ||||||
|  | 
 | ||||||
|  | # System language | ||||||
|  | lang en_US.UTF-8 | ||||||
|  | 
 | ||||||
|  | # Shutdown after installation | ||||||
|  | shutdown | ||||||
|  | 
 | ||||||
|  | # Use text mode install | ||||||
|  | text | ||||||
|  | 
 | ||||||
|  | # Network information | ||||||
|  | network  --bootproto=dhcp --device=link --activate --onboot=on | ||||||
|  | 
 | ||||||
|  | # Firewall configuration | ||||||
|  | firewall --enabled --service=mdns | ||||||
|  | 
 | ||||||
|  | # System timezone | ||||||
|  | # set time zone to GMT (Etcetera/UTC) | ||||||
|  | timezone Etc/UTC --utc | ||||||
|  | 
 | ||||||
|  | # Run the Setup Agent on first boot | ||||||
|  | firstboot --reconfig | ||||||
|  | 
 | ||||||
|  | # SELinux configuration | ||||||
|  | selinux --enforcing | ||||||
|  | 
 | ||||||
|  | # System services | ||||||
|  | # message: error enabling initial-setup, initial-setup does not exist | ||||||
|  | services --enabled="sshd,NetworkManager,chronyd,initial-setup" | ||||||
|  | 
 | ||||||
|  | # System bootloader configuration | ||||||
|  | bootloader --location=mbr --timeout=1 --append="console=tty1 console=ttyS0,115200n8" | ||||||
|  | 
 | ||||||
|  | # Partition Information. Use default partitioning as configured in Anaconda on | ||||||
|  | # Server Edition distribution media | ||||||
|  | autopart --noswap | ||||||
|  | # Clear the Master Boot Record | ||||||
|  | zerombr | ||||||
|  | # Partition clearing information | ||||||
|  | clearpart --all --initlabel --disklabel=msdos | ||||||
|  | 
 | ||||||
|  | %post --erroronfail | ||||||
|  | 
 | ||||||
|  | # Find the architecture we are on | ||||||
|  | arch=$(uname -m) | ||||||
|  | 
 | ||||||
|  | # Import RPM GPG key, during installation saved in /etc/pki | ||||||
|  | echo "Import RPM GPG key" | ||||||
|  | releasever=$(rpm --eval '%{fedora}') | ||||||
|  | basearch=$(uname -i) | ||||||
|  | rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch | ||||||
|  | 
 | ||||||
|  | # See the systemd-random-seed.service man page that says: | ||||||
|  | #   " It is recommended to remove the random seed from OS images intended | ||||||
|  | #     for replication on multiple systems" | ||||||
|  | # The newly installed instance should make it's own | ||||||
|  | echo "Removing random-seed so it's not the same in every image." | ||||||
|  | rm -f /var/lib/systemd/random-seed | ||||||
|  | 
 | ||||||
|  | # When we build the image a networking config file gets left behind. | ||||||
|  | # Let's clean it up. | ||||||
|  | echo "Cleanup leftover networking configuration" | ||||||
|  | rm -f /etc/NetworkManager/system-connections/*.nmconnection | ||||||
|  | 
 | ||||||
|  | dnf -y remove dracut-config-generic | ||||||
|  | 
 | ||||||
|  | # Remove machine-id on pre generated images | ||||||
|  | rm -f /etc/machine-id | ||||||
|  | touch /etc/machine-id | ||||||
|  | 
 | ||||||
|  | # Truncate the /etc/resolv.conf left over from NetworkManager during the | ||||||
|  | # kickstart. This causes delays in boot with cloud-init because the | ||||||
|  | # 192.168.122.1 DNS server cannot be reached. | ||||||
|  | truncate -s 0 /etc/resolv.conf | ||||||
|  | 
 | ||||||
|  | # linux-firmware is installed by default and is quite large. As of mid 2020: | ||||||
|  | #   Total download size: 97 M | ||||||
|  | #   Installed size: 268 M | ||||||
|  | # So far we've been fine shipping without it so let's continue. | ||||||
|  | # More discussion about this in #1234504. | ||||||
|  | echo "Removing linux-firmware package." | ||||||
|  | rpm -e linux-firmware | ||||||
|  | 
 | ||||||
|  | echo "Packages within this disk image" | ||||||
|  | rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn | ||||||
|  | 
 | ||||||
|  | # Note that running rpm recreates the rpm db files which aren't needed or wanted | ||||||
|  | rm -f /var/lib/rpm/__db* | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | if [[ $arch == "aarch64" ]] || [[ $arch == "armv7l" ]]; then | ||||||
|  | 
 | ||||||
|  | # Anaconda adds console=tty0 to the grub boot line on all images. this is problematic | ||||||
|  | # when you are using fedora via serial console as you do not get any output post grub | ||||||
|  | # linux does a good job of knowing what consoles need to be enabled. | ||||||
|  | # https://bugzilla.redhat.com/show_bug.cgi?id=2022757 | ||||||
|  | sed -i -e 's|console=tty0||g' /boot/loader/entries/*conf | ||||||
|  | 
 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Cleanup dnf packages | ||||||
|  | echo "Cleaning old yum repodata." | ||||||
|  | dnf clean all | ||||||
|  | 
 | ||||||
|  | echo "Zeroing out empty space." | ||||||
|  | # Create zeros file with nodatacow and no compression | ||||||
|  | touch /var/tmp/zeros | ||||||
|  | chattr +C /var/tmp/zeros | ||||||
|  | # This forces the filesystem to reclaim space from deleted files | ||||||
|  | dd bs=1M if=/dev/zero of=/var/tmp/zeros || : | ||||||
|  | echo "(Don't worry -- that out-of-space error was expected.)" | ||||||
|  | # Force sync to disk | ||||||
|  | sync / | ||||||
|  | rm -f /var/tmp/zeros | ||||||
|  | sync / | ||||||
|  | 
 | ||||||
|  | %end | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %post | ||||||
|  | 
 | ||||||
|  | # setup systemd to boot to the right runlevel | ||||||
|  | echo -n "Setting default runlevel to multiuser text mode" | ||||||
|  | rm -f /etc/systemd/system/default.target | ||||||
|  | ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target | ||||||
|  | echo . | ||||||
|  | 
 | ||||||
|  | %end | ||||||
|  | 
 | ||||||
|  | %packages --inst-langs=en | ||||||
|  | 
 | ||||||
|  | @server-product | ||||||
|  | @core | ||||||
|  | @headless-management | ||||||
|  | @standard | ||||||
|  | @networkmanager-submodules | ||||||
|  | ##@container-management | ||||||
|  | @domain-client | ||||||
|  | @guest-agents | ||||||
|  | 
 | ||||||
|  | # All arm-tools packages install on aarch64/armhfp only | ||||||
|  | # TODO: on a x86_64 devel environment are @arm-tools not available | ||||||
|  | # and cause a build error. | ||||||
|  | # @arm-tools | ||||||
|  | 
 | ||||||
|  | # Standard Fedora Package Groups | ||||||
|  | ## dracut-config-generic  ## included in =core= | ||||||
|  | glibc-all-langpacks | ||||||
|  | initial-setup | ||||||
|  | kernel-core | ||||||
|  | -dracut-config-rescue | ||||||
|  | -generic-release* | ||||||
|  | -initial-setup-gui | ||||||
|  | -kernel | ||||||
|  | -plymouth | ||||||
|  | # pulled in by @standard | ||||||
|  | -smartmontools | ||||||
|  | -smartmontools-selinux | ||||||
|  | 
 | ||||||
|  | %end | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user