As I start to generalize my base puppet config, I added support for Debian. That led me to look into the install automation, called preseeding. I started the process of converting my kickstart models to work with a preseed configuration. I have a working template, it still does not assign the static network values but does a complete no prompting install, tested with the latest release 7.0. I will test it with Ubuntu server as well. Once it’s solid, I will work on updating the bootstrap script to handle the puppet initialization. Check out the repo at github.
Update: Ok, so it still needs work. My tests did not reveal the prompts when the disk is new/uninitialized. Almost right.
I’ve been teaching myself Puppet. I determined early on that I preferred the standalone approach, where the whole configuration is stored in a centralized repository with the clients periodically checking out the configuration and applying the changes. Since there are some gaps in the information I found on the subject, I put the most basic structure together and made it available in github. Take this as a starting point. It will need modification to suit your needs.
The assumptions for this project are related to the kickstart project that can also be found in github. If you kickstart a new host/vm, you will want to place it under configuration management as quickly as possible, usually a requirement these days. I have included the bootstrap.sh script to act as the first step towards that goal. Once the initial checkout and application of the configuration occur, reboot and you can start using the new host/vm in it’s role.
Being able to deploy a linux host from a standard template is a valuable part of any sysadmin’s skill set. Used in conjunction with configuration management tools like Puppet, you can readily deploy numerous systems with the knowledge that they are documented and reproducible. With so much emphasis on disaster recovery with the shortest possible RTO, how can you really deploy by hand anymore?
I put together the most common pieces to get you started. Check it out: https://github.com/breauxaj/kickstart
I’m teaching myself puppet and trying to wrap a module around the TCP load balancer called “balance”. I decided to redo the init script I put together a while back and update my github repo for it. Along with the init script is a file that goes in /etc/sysconfig along with a sample config that should go in /etc/balance.d
I am using the rpm version (since puppet really seems to prefer that over source building). Check EPEL for it.
You may or may not have run into this yet. I’ve only seen it a few times and while I understand the reasoning behind it, it plays hell with kickstart (since you have to know the interface name and assume it’s eth0). The behavior can be disabled, apparently through a boot parameter:
I’ll test it when I run across a machine that does this to see if it can be handled gracefully in kickstart.