93 lines
3.0 KiB
Bash
Executable File
93 lines
3.0 KiB
Bash
Executable File
#!/bin/sh
|
|
# see also http://www.altlinux.org/Autoinstall
|
|
|
|
message() { echo "vm-profile: $*" >>/tmp/vm-profile.log; }
|
|
|
|
mem="$(sed -n '/^MemTotal/s/[^0-9]//gp' /proc/meminfo)" # in kB
|
|
max_disk="$(sort -rn /sys/block/[hs]d*/size | head -1)" # in 512-byte sectors
|
|
|
|
# feel free to suggest better defaults
|
|
if [ "$mem" -le 262144 ]; then
|
|
swap="$[ 2*$mem ]"
|
|
elif [ "$mem" -le 524288 ]; then
|
|
swap="$mem"
|
|
else
|
|
swap=1048576
|
|
fi
|
|
|
|
# don't do RAID in a VM, reduce swap to a minimum
|
|
if grep -qE '(101300b8)|(80eebeef)|(14ad0405)' /proc/bus/pci/devices; then
|
|
methods='plain'
|
|
swap=131072
|
|
else
|
|
methods='raid plain'
|
|
fi
|
|
|
|
if [ "$max_disk" -le 20971520 ]; then
|
|
base=1048576 # less than 10G HDD, choose 1G partitions
|
|
elif [ "$max_disk" -le 52428800 ]; then
|
|
base=2097152 # 2G up to 25G HDD
|
|
elif [ "$max_disk" -le 209715200 ]; then
|
|
base=10485760 # 10G up to 100G HDD
|
|
else
|
|
base=20971520 # 20G otherwise
|
|
fi
|
|
|
|
message "mem=$mem k"
|
|
message "swap=$swap k"
|
|
message "max_disk=$max_disk"
|
|
message "base=$base k"
|
|
|
|
# EVMS deals with sectors
|
|
swap="$[ 2*$swap ]"
|
|
base="$[ 2*$base ]"
|
|
|
|
# The Plan:
|
|
# - provide a few more or less equivalent server partitioning profiles
|
|
# - give larger swap to build servers (RAM sized so tmpfs can get swapped out)
|
|
|
|
cat > /var/cache/alterator/vm-profile.scm << _EOF_
|
|
((rootonly
|
|
(title . "Minimal server (rootfs only /)")
|
|
(action . trivial)
|
|
(actiondata
|
|
("swap" (size . $swap) (fsim . "SWAPFS") (methods $methods))
|
|
("/" (size $base . #t) (fsim . "Ext2/3") (methods $methods))))
|
|
(kvm
|
|
(title . "KVM Server (large /var/lib/libvirt/images)")
|
|
(action . trivial)
|
|
(actiondata
|
|
("swap" (size . $[2*$swap]) (fsim . "SWAPFS") (methods $methods))
|
|
("/" (size $base . $[2*$base]) (fsim . "Ext2/3") (methods $methods))
|
|
("/var/lib/libvirt/images" (size $base . #t) (fsim . "Ext2/3") (methods $methods))))
|
|
(docker
|
|
(title . "Docker Server (large /var/lib/docker)")
|
|
(action . trivial)
|
|
(actiondata
|
|
("swap" (size . $swap) (fsim . "SWAPFS") (methods $methods))
|
|
("/" (size $base . $[2*$base]) (fsim . "Ext2/3") (methods $methods))
|
|
("/var/lib/docker" (size $base . #t) (fsim . "Ext2/3") (methods $methods))))
|
|
(lxd
|
|
(title . "LXD Server (large /var/lib/lxd)")
|
|
(action . trivial)
|
|
(actiondata
|
|
("swap" (size . $swap) (fsim . "SWAPFS") (methods $methods))
|
|
("/" (size $base . $[2*$base]) (fsim . "Ext2/3") (methods $methods))
|
|
("/var/lib/lxd" (size $base . #t) (fsim . "Ext2/3") (methods $methods))))
|
|
(srv
|
|
(title . "Generic server (large /srv)")
|
|
(action . trivial)
|
|
(actiondata
|
|
("swap" (size . $swap) (fsim . "SWAPFS") (methods $methods))
|
|
("/" (size $base . $[2*$base]) (fsim . "Ext2/3") (methods $methods))
|
|
("/var" (size $base . $[2*$base]) (fsim . "Ext2/3") (methods $methods))
|
|
("/srv" (size $base . #t) (fsim . "Ext2/3") (methods $methods))))
|
|
(var
|
|
(title . "Generic server (large /var)")
|
|
(action . trivial)
|
|
(actiondata
|
|
("swap" (size . $swap) (fsim . "SWAPFS") (methods $methods))
|
|
("/" (size $base . $[2*$base]) (fsim . "Ext2/3") (methods $methods))
|
|
("/var" (size $base . #t) (fsim . "Ext2/3") (methods $methods)))))
|
|
_EOF_
|