- kickstarts: contents go in
/var/lib/cobbler/kickstarts
- snippets: contents go in
/var/lib/cobbler/snippets
- www: contents go in
/var/www
apt-get install cobbler cobbler-web debmirror dnsmasq
- edit
/etc/cobbler/modules.conf
- Set to use dnsmasq
- edit /etc/cobbler/dnsmasq.template
- Set dhcp range to proper range
- Ensure dnsmasq is only listening on required interfaces!
- edit
/etc/cobbler/settings
- Set
manage_dns/dhcp
to on if needed
- Set
cobbler get-loaders
cobbler sync
- mount ubuntu iso
cobbler import --name=ubuntu-server-12.04 --path=/mnt --breed=ubuntu
cobbler distro list
- Install apt-cacher:
apt-get install apt-cacher-ng
- Create profiles based on OpenStack roles
- For example, Controller and Compute
- Assign each role a seed file:
- Included is
install-cc.seed
for Controller install-node.seed
for Compute
- Included is
- For each role/profile, make sure you add the following kernel option:
netcfg/choose_interface=eth0
- If this is not specified, the installer will prompt you to choose a NIC when multiple NICs are available, thus breaking the hands-off installation.
- Once profiles have been created, create a system for each physical server
- Type in the network and hostname information into the system config form
- Edit the cobbler scripts to suit your environment! Install sources, IP addresses, etc.
- Make sure
puppet_auto_setup
is set to1
in/etc/cobbler/settings
.- This triggers the Puppet setup in
snippets/ubuntu_late_command
- This triggers the Puppet setup in
- Create a Puppet Master server (could be the same as the cobbler server).
- Edit
www/puppet.*
to suit your environment's needs.
I have modified the Cobbler network config scripts to allow advanced Ubuntu network configuration such as bonding and vlans. I'll add some examples soon.
This code is in the snippets/ubuntu_late_command*
files.
It is important to note that if the network interface IS your primary outgoing interface, mark it as MANAGEMENT. Otherwise more than one interface will get your default gateway and networking will not start due to errors.
A few hacks had to be done to get the debian-installer preseed to work correctly.
The first hack is the early_command
hack. Debian/Ubuntu preseeding is horrible for advanced hard disk partitioning (such as RAID and LVM). To get around this, a shell script overrides the normal partitioner and manually issues partitioning commands. See www/early_command_*
for exact commands. More information about this can be found here.
The second hack is to apply the static network configuration after the install is done. See the Network Configuration section for more details on this.
The third hack is described in Ubuntu Configuration regarding multiple NICs.