virt-sysprep: Add cron-spool, mail-spool, utmp.

This commit is contained in:
Richard W.M. Jones
2011-10-14 08:36:00 +01:00
parent 05c26a9c09
commit c019d073a4
3 changed files with 38 additions and 2 deletions

2
TODO
View File

@@ -564,8 +564,6 @@ virt-sysprep ideas
/var/cache/gdm/*
/var/lib/fprint/*
/var/run/*
/var/spool/mail/*
/var/spool/cron/*
/var/lib/AccountService/users/*
/var/lib/sss/db/*
/var/lib/samba/*

View File

@@ -131,43 +131,52 @@ done
# enable all of these, although some of them are only done on certain
# guest types (see details below).
if [ -z "$enable" ]; then
cron_spool=yes
dhcp_client_state=yes
dhcp_server_state=yes
hostname=yes
logfiles=yes
mail_spool=yes
net_hwaddr=yes
random_seed=yes
rhn_systemid=yes
smolt_uuid=yes
ssh_hostkeys=yes
udev_persistent_net=yes
utmp=yes
yum_uuid=yes
elif [ "$enable" = "list" ]; then
echo "cron-spool"
echo "dhcp-client-state"
echo "dhcp-server-state"
echo "hostname"
echo "logfiles"
echo "mail-spool"
echo "net-hwaddr"
echo "random-seed"
echo "rhn-systemid"
echo "smolt-uuid"
echo "ssh-hostkeys"
echo "udev-persistent-net"
echo "utmp"
echo "yum-uuid"
exit 0
else
for opt in $(echo "$enable" | sed 's/,/ /g'); do
case "$opt" in
cron-spool) cron_spool=yes ;;
dhcp-client-state) dhcp_client_state=yes ;;
dhcp-server-state) dhcp_server_state=yes ;;
hostname) hostname=yes ;;
logfiles) logfiles=yes ;;
mail-spool) mail_spool=yes ;;
net-hwaddr) net_hwaddr=yes ;;
random-seed) random_seed=yes ;;
rhn-systemid) rhn_systemid=yes ;;
smolt-uuid) smolt_uuid=yes ;;
ssh-hostkeys) ssh_hostkeys=yes ;;
udev-persistent-net) udev_persistent_net=yes ;;
utmp) utmp=yes ;;
yum-uuid) yum_uuid=yes ;;
*)
echo "error: unknown --enable feature: $opt"
@@ -240,6 +249,10 @@ mnt="$tmpdir/mnt"
#----------------------------------------------------------------------
# The sysprep operations.
if [ "$cron_spool" = "yes" ]; then
rm -rf $mnt/var/spool/cron/*
fi
if [ "$dhcp_client_state" = "yes" ]; then
case "$type" in
linux)
@@ -293,6 +306,11 @@ if [ "$logfiles" = "yes" ]; then
esac
fi
if [ "$mail_spool" = "yes" ]; then
rm -rf $mnt/var/spool/mail/*
rm -rf $mnt/var/mail/*
fi
if [ "$net_hwaddr" = "yes" ]; then
case "$type/$distro" in
linux/fedora)
@@ -344,6 +362,10 @@ if [ "$udev_persistent_net" = "yes" -a "$type" = "linux" ]; then
rm -f $mnt/etc/udev/rules.d/70-persistent-net.rules
fi
if [ "$utmp" = "yes" -a "$type" != "windows" ]; then
rm -f $mnt/var/run/utmp
fi
if [ "$yum_uuid" = "yes" -a "$package_management" = "yum" ]; then
rm -f $mnt/var/lib/yum/uuid
fi

View File

@@ -171,6 +171,10 @@ Future versions of virt-sysprep may add more operations. If you are
using virt-sysprep and want predictable behaviour, specify only the
operations that you want to have enabled.
=head2 cron-spool
Remove user at-jobs and cron-jobs.
=head2 dhcp-client-state
Remove DHCP client leases.
@@ -191,6 +195,10 @@ changed to C<localhost.localdomain>.
Remove many log files.
=head2 mail-spool
Remove email from the local mail spool directory.
=head2 net-hwaddr
Remove HWADDR (hard-coded MAC address) configuration. For Fedora and
@@ -236,6 +244,14 @@ old MAC address occupies the old name (eg. eth0), this means the fresh
MAC address is assigned to a new name (eg. eth1) and this is usually
undesirable. Erasing the udev persistent net rules avoids this.
=head2 utmp
Remove the utmp file.
This records who is currently logged in on a machine. In modern Linux
distros it is stored in a ramdisk and hence not part of the virtual
machine's disk, but it was stored on disk in older distros.
=head2 yum-uuid
Remove the yum UUID.