Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm working in an environment that consists of CentOS systems located in multiple data centers and office locations. I've been using a reasonable kickstart with a solid post-install script, but want to streamline and expand the process. We have our own yum repo and I have control over the range of hardware in use (it's usually HP ProLiant hardware or VMWare) Let's say I build or redeploy one server every week. Following the steps needed for hardware preparation, I begin the OS setup. The issues I have now are:

1). A nice way of booting systems into the network installer. I've been using the 10mb boot.iso/netinstall.iso available in CentOS distribution. I mount this either via VMWare vCenter (for VMs) or HP ILO (usually over SSH, pointing to the URL of the ISO) to kick off the installations. I can't use PXE in most cases because the data center locations do not have DHCP available. Is there a clean way to get the boot.iso onto a USB key, for instance?

2). Sometimes I need to set a static IP for the kickstart. Is there a better way to input that info other than typing it on the boot: command line at the installer prompt?

3). A good method for customizing the kickstart. Right now, I have most of what I need, but sometimes need to alter the partition scheme to account for different RAID setups (e.g. two SmartArray controllers). Right now, I'm basically creating a separate kickstart file for each system (or group of system's) settings. I end up with a directory full of old *.cfg files. I know there's a more elegant way of doing this. PHP perhaps?

4). Help with the install method. As-is, the full build from prompt to completion takes 5-10 minutes. I've noticed that the install method matters, depending on location. HTTP works well local to the yum server, but is poor over our high-bandwidth low-latency connections to other sites. NFS works better in those cases. I'd appreciate any nifty tricks used to preload settings or system parameters before the kickstart process.

5). The post-install script works well. It pulls additional packages, sets some initial settings, trims the services list down and populates a few users/passwords/SSH keys. I'd like to get this environment running with a proper configuration management (I'm used to CFEngine, but think that Puppet or Bcfg2 are probably a better choice nowadays). Do I pare-down the post-install script and move those functions into CFEngine? That's probably a different question, though.

Here's a an example of the kickstart file I've been using:

install
text
url --url http://yum.abc.com/5.6/os/x86_64/
#nfs --server=yum.abc.com --dir=/yum/5/os/x86_64
lang en_US.UTF-8
langsupport --default=en_US.UTF-8 en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp
rootpw --iscrypted $encryptedpassword
firewall --disabled
selinux --disabled
authconfig --enableshadow --enablemd5
timezone --utc America/Chicago
bootloader --location=mbr
clearpart --all --initlabel
part /boot --fstype ext3 --size=200
part /usr --fstype ext3 --size=8192 --asprimary
part / --fstype ext3 --size=12288 --asprimary
part /var --fstype ext3 --size=4096
part swap --size=8192
part /tmp --fstype ext3 --size=2048
#part /opt --fstype ext3 --size=100 --grow
#part /scratch --fstype ext3 --size=61440

%packages
@ admin-tools
@ editors
@ system-tools
@ network-server
@ mail-server
@ server-cfg
@ development-tools
yum-fastestmirror
rpm-devel
e2fsprogs
grub
kernel-devel
net-snmp-utils
-subversion
-xdelta

%post
exec < /dev/tty3 > /dev/tty3
chvt 3
echo
echo "################################"
echo "# Running Post Configuration   #"
echo "################################"
(
/usr/bin/wget http://ks.abc.com/post/post-install-abc.sh -O /root/post-install-abc.sh
/bin/chmod 755 /root/post-install-abc.sh
/root/post-install-abc.sh
) 2>&1 | /usr/bin/tee /var/log/post-install.log
chvt 1
share|improve this question

2 Answers 2

up vote 3 down vote accepted

Have a look at Cobbler - https://fedorahosted.org/cobbler/ - I use it in a PXE environment but it should work for you.

share|improve this answer
    
Does one use Cobbler in addition to the CFEngines/Puppets/etc.? Is there overlap? –  ewwhite May 18 '11 at 21:14
    
Cobbler has some support for working with a configuration management system but I haven't really messed with it: fedorahosted.org/cobbler/wiki/… –  jcollie May 18 '11 at 21:26

I would recommend the Foreman over cobbler, as it will replace cobbler/Satellite in the future.

The foreman is far more flexible, and once you have set it up properly, you can delegate host building to others.

It ia also deeply integrated with Puppet, ie you can manage classes, certificates, view puppet reports etc.

share|improve this answer
    
Could you provide more details about this replacement? Have the cobbler devs said they are stopping development? –  Mark Wagner May 18 '11 at 22:42
    
Any examples of how you use it? –  ewwhite May 19 '11 at 0:13
    
2  
@embobo Check the pdf presentation, page 23 and 37 in particular. I don't think cobbler development will stop. @ewwhite : The setup is somewhat involved, especially for Kickstart. You should follow the tutorials on the web site and try the mailing lists and IRC for help, –  Not Now May 19 '11 at 19:05
    
@not-now Thanks for the link! –  Mark Wagner May 19 '11 at 20:00

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.