Some time ago I asked my self the question if it is better to kickstart systems or working with ESX templates when deploying RHEL as ESX guests. I also had some discussions with friends working in the same industry. I tried it and came to the following conclusion:
Kickstart the systems is the way to go.
- Kickstarted Systems are already up-to-date after installation.
- Proper SSH host keys. Using ESX templates ends up in having identical SSH host keys, from the security standpoint not usable, they need to be manually re-created.
- Kickstarting means lean deployment, much less data needs to be transferred.
- Very fast, kickstarted systems are deployed in ~3min instead of ~10min (depending on I/O and network performance).
- Systems are being automatically registered @rhn or on a rhn-satellite with the help of cobbler snippets.
- Better customization.
- The ESX template to used for kickstarting must have no disks configured, otherwise the whole nominal disk size is being transferred over the net.
When kickstarting virtual systems, only the data needed (the RPMs) is transferred. The best way is to have a “empty” ESX template, just with the network defined, but no disks. The reason for that is: ESX creates a checksum of the disk files, even if the disk is empty, the sparse disk files (in the case of “thin provisioning”) will be transferred over the net at its full nominal size.
When using ESX templates, after deploying, one needs to register the system manually and also manually update the system by invoking “yum -y update”. In contrary, kickstarted systems are always up to date automatically. To circumvent this fact, one needs to keep the templates up to date, it is a manual task which can not be automated easily.