#919 Added cleanup of /var/log
Closed 2 years ago by pboy. Opened 2 years ago by pboy.
pboy/fedora-kickstarts f37  into  main

@@ -10,7 +10,7 @@ 

  deja-dup-nautilus

  

  # Add extra gnome applications

- gnome-books

+ #gnome-books

  gnome-calendar

  gnome-photos

  gnome-pomodoro
@@ -27,6 +27,5 @@ 

  # temporarily removing conflicting application

  -mypaint

  -sparkleshare

- -blender-luxcorerender

  

  %end

file modified
+4 -4
@@ -19,7 +19,7 @@ 

  

  # Equivalent of %include fedora-repo.ks

  # Pull from the ostree repo that was created during the compose

- ostreesetup --nogpg --osname=fedora-iot --remote=fedora-iot --url=https://kojipkgs.fedoraproject.org/compose/iot/repo/ --ref=fedora/rawhide/${basearch}/iot

+ ostreesetup --nogpg --osname=fedora-iot --remote=fedora-iot --url=https://kojipkgs.fedoraproject.org/compose/iot/repo/ --ref=fedora/devel/${basearch}/iot

  

  reboot

  
@@ -45,14 +45,14 @@ 

  

  # Set the origin to the "main ref", distinct from /updates/ which is where bodhi writes.

  # We want consumers of this image to track the two week releases.

- ostree admin set-origin --index 0 fedora-iot https://dl.fedoraproject.org/iot/repo/ "fedora/rawhide/${arch}/iot"

+ ostree admin set-origin --index 0 fedora-iot https://dl.fedoraproject.org/iot/repo/ "fedora/devel/${arch}/iot"

  

  # Make sure the ref we're supposedly sitting on (according

  # to the updated origin) exists.

- ostree refs "fedora-iot:fedora/rawhide/${arch}/iot" --create "fedora-iot:fedora/rawhide/${arch}/iot"

+ ostree refs "fedora-iot:fedora/devel/${arch}/iot" --create "fedora-iot:fedora/devel/${arch}/iot"

  

  # Remove the old ref so that the commit eventually gets cleaned up.

- ostree refs "fedora-iot:fedora/rawhide/${arch}/iot" --delete

+ ostree refs "fedora-iot:fedora/devel/${arch}/iot" --delete

  

  # delete/add the remote with new options to enable gpg verification

  # and to point them at the cdn url

@@ -78,7 +78,6 @@ 

  ginga

  python3-astropy

  python3-astroML

- python3-astroML-addons

  python3-astroquery

  python3-astroscrappy

  python3-APLpy

file modified
+1 -1
@@ -25,7 +25,7 @@ 

  FOE

  

  # don't autostart gnome-software session service

- rm -f /etc/xdg/autostart/gnome-software-service.desktop

+ rm -f /etc/xdg/autostart/org.gnome.Software.desktop

  

  # disable the gnome-software shell search provider

  cat >> /usr/share/gnome-shell/search-providers/org.gnome.Software-search-provider.ini << FOE

@@ -48,7 +48,7 @@ 

  

  # Drop the Java plugin and Java

  -icedtea-web

- -java*

+ -*openjdk*

  

  # No printing

  -@printing

file modified
+2 -2
@@ -3,7 +3,7 @@ 

  # Exactly one of the following should be uncommented

  

  # For the master branch the following should be uncommented

- %include fedora-repo-rawhide.ks

+ #%include fedora-repo-rawhide.ks

  

  # For non-master branches the following should be uncommented

- # %include fedora-repo-not-rawhide.ks

+ %include fedora-repo-not-rawhide.ks

@@ -0,0 +1,199 @@ 

+ # fedora-server-vm-full.ks (rel. 1.01)

+ # 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.

+ #

+ # The image uses GPT partition type as of default in Fedora 37

+ #

+ # 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.

+ 

+ # Use text mode install

+ text

+ 

+ # Keyboard layouts

+ keyboard 'us'

+ 

+ # System language

+ lang en_US.UTF-8

+ 

+ # System timezone

+ # set time zone to GMT (Etcetera/UTC)

+ timezone Etc/UTC --utc

+ 

+ 

+ # Root password

+ rootpw --iscrypted --lock locked

+ 

+ # SELinux configuration

+ selinux --enforcing

+ 

+ 

+ # System bootloader configuration

+ bootloader --location=mbr --timeout=1 --append="console=tty1 console=ttyS0,115200n8"

+ 

+ # Network information

+ network  --bootproto=dhcp --device=link --activate --onboot=on

+ 

+ # Firewall configuration

+ firewall --enabled --service=mdns

+ 

+ 

+ # System services

+ # message: error enabling initial-setup, initial-setup does not exist

+ services --enabled="sshd,NetworkManager,chronyd,initial-setup"

+ 

+ # Run the Setup Agent on first boot

+ firstboot --reconfig

+ 

+ # Partition Information. Use GPT by default (since Fedora 37)

+ # Resemble the Partitioning used for Fedora Server Install media

+ clearpart --all --initlabel --disklabel=gpt

+ reqpart --add-boot

+ part pv.007     --size=4000  --grow

+ volgroup  sysvg  pv.007

+ logvol / --vgname=sysvg --size=4000 --grow --maxsize=16000 --fstype=xfs --name=root --label=sysroot

+ 

+ 

+ # Include URLs for network installation dynamically, dependent from Fedora release

+ # and imagefactory runtime environment

+ %include fedora-repo.ks

+ 

+ # Shutdown after installation

+ shutdown

+ 

+ 

+ 

+ ##### begin package list #############################################

+ %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

+ -linux-firmware

+ -plymouth

+ # pulled in by @standard

+ -smartmontools

+ -smartmontools-selinux

+ 

+ %end

+ ##### end package list ###############################################

+ 

+ 

+ ##### begin kickstart post script ####################################

+ %post --erroronfail  --log=/root/anaconda-post-1.log

+ 

+ # 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

+ 

+ # Truncate the /etc/resolv.conf left over from NetworkManager during the

+ # kickstart because the DNS server is environment specific.

+ truncate -s 0 /etc/resolv.conf

+ 

+ echo "Cleaning repodata to save space."

+ dnf clean all

+ 

+ # linux-firmware is installed by default and is quite large. As of mid 2020:

+ #   Total download size: 97 M

+ #   Installed size: 268 M

+ # Not needed in virtual environment.

+ echo "Removing linux-firmware package."

+ rpm -e linux-firmware

+ 

+ # Will ever anybody see this?

+ 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*

+ 

+ 

+ # Do we need a serial terminal with a VM?

+ 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

+ 

+ 

+ # Remove machine-id on pre generated images

+ rm -f /etc/machine-id

+ touch /etc/machine-id

+ 

+ %end

+ ##### end kickstart post script #####################################

+ 

+ 

+ ##### begin custom post script (after base) #########################

+ %post

+ 

+ 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 /

+ 

+ # 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 .

+ 

+ # When we build the image /var/log gets populated.

+ # Let's clean it up.

+ echo "Cleanup leftover in /var/log"

+ rm -rf /var/log/*

+ 

+ %end

+ ##### end custom post script ########################################

Testing reveals that dir /var/log still contains a lot of trash that should be deleted. This is the PR for F37 (another one was for main). Unfortunately I missed that pagure switched from f37 -> f37 to f37 -> main somehow.

This one seems to have conflicts, can you rebase?

Yeah, the target is f37, not main. Somehow it changed in the process.

Unfortunately, we use subversion, so my git knowledge is limited, unfortunately. Sorry. So I just don't know, how to. I committed to F37 and pushed to F37. Can you just delete it and I start over?

It's possible that some packages may expect their /var/log directory tree to exist so it may be better to only remove files under /var/log

Closed this PR to fix the issues

Pull-Request has been closed by pboy

2 years ago