When building out an environment of any kind, you need to have a good starting base, a strong foundation and the same holds true for many things. It’s no different when building a virtual machine (VM) template to deploy in your environment in a repeatable fashion.
Recently I spent some time developing a generalized/sanitized VM template for Red Hat Enterprise Linux (RHEL) versions 6 and 7. This script should be run right before you shutdown the VM and template it for reuse.
#!/bin/bash echo "Generalize the template..." echo "Remove RHN system ID..." rm -f /etc/sysconfig/rhn/systemid echo "Create sanitized ifcfg-eth0..." echo -en 'DEVICE=eth0\nTYPE=Ethernet\nONBOOT=yes\nBOOTPROTO=dhcp\n' > /etc/sysconfig/network-scripts/ifcfg-eth0 echo "Clear /etc/sysconfig/network file..." cat > /etc/sysconfig/network < /dev/null echo "Remove SHH keys..." rm -f /etc/ssh/ssh_host_* echo "Remove udev rules..." rm -f /etc/udev/rules.d/70-* echo "Remove fixed hostname..." rm -f /etc/hostname echo "Clear Machine ID (SID)..." > /etc/machine-id echo "Remove all logs from /var/log..." rm -rf /var/log/* echo "Remove all logs from /root..." rm -rf /root/*