- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with cobbler
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
This module manages Cobbler.
Cobbler is a Linux installation server that allows for rapid setup of network installation environments.
The Cobbler module provides a simplified way of setting up Cobbler and
managing internal Cobbler resources like distro
, profile
and system
.
This allows admin to forget long and cumbersome cobbler CLI commands with
dozens of switches and options.
- cobbler package
- cobbler configuration files
- cobbler service
- cobbler's internal database records (distro, repo, profile, system)
To install and configure Cobbler with the default parameters, declare the
cobbler
class:
include ::cobbler
To set up Cobbler Web User Interface:
include ::cobbler::web
Cobbler defaults are determined depending on operating system. Module will
install cobbler
, tftp
and syslinux
. It will use
Apache module
to set up Apache httpd
with mod_wsgi
, which will serve cobbler
and
/distros
context in Apache.
When declaring the cobbler class, you can control many parameters relating
to the package and service, path for storing distributions, DHCP options,
etc:
class cobbler {
distro_path => '/data/distro',
manage_dhcp => True,
server_ip => '10.100.0.111',
next_server_ip => '10.100.0.111',
purge_profile => True,
purge_system => True,
}
Distro is an object in Cobbler representing Linux distribution, with its own kernel, installation and packages.
You can easily add distros to your Cobbler installation just by specifying download link of ISO image and distro name:
cobbler::add_distro { 'CentOS-6.5-x86_64':
arch => 'x86_64',
isolink => 'http://mi.mirror.garr.it/mirrors/CentOS/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso',
}
If you want to use 'cobbler import' style, you can add a distro other way:
cobblerdistro { 'SL-6.5-x86_64':
ensure => present,
path => '/distro/SL64/x86_64/os',
ks_meta => {
'tree' => 'http://repos.theory.phys.ucl.ac.uk/mirrors/SL/6.5/x86_64/os',
},
}
ks_meta
parameter's 'tree' value is used as --available-as
option.
Repo is a Cobbler object representing a distribution package repository (for example yum repository).
If you wish to mirror additional repositories for your kickstart installations, it's as easy as:
cobblerrepo { 'PuppetLabs-6-x86_64-deps':
ensure => present,
arch => 'x86_64',
mirror => 'http://yum.puppetlabs.com/el/6/dependencies/x86_64',
mirror_locally => false,
priority => 99,
require => [ Service[$cobbler::service_name], Service[$cobbler::apache_service] ],
}
Profile is a Cobbler object representing a pre-configured set of distro/repos/settings for kickstarting a node.
Simple profile definition looks like:
cobblerprofile { 'CentOS-6.5-x86_64':
ensure => present,
distro => 'CentOS-6.5-x86_64',
nameservers => $cobbler::nameservers,
repos => ['PuppetLabs-6-x86_64-deps', 'PuppetLabs-6-x86_64-products' ],
kickstart => '/somepath/kickstarts/CentOS-6.5-x86_64-static.ks',
}
System is a Cobbler object that maps physical or virtual machine with the cobbler profile which is assigned to run on it.
Typical definition looks like:
cobblersystem { 'somehost':
ensure => present,
profile => 'CentOS-6.5-x86_64',
interfaces => { 'eth0' => {
mac_address => 'AA:BB:CC:DD:EE:F0',
interface_type => 'bond_slave',
interface_master => 'bond0',
static => true,
management => true,
},
'eth1' => {
mac_address => 'AA:BB:CC:DD:EE:F1',
interface_type => 'bond_slave',
interface_master => 'bond0',
static => true,
},
'bond0' => {
ip_address => '192.168.1.210',
netmask => '255.255.255.0',
static => true,
interface_type => 'bond',
bonding_opts => 'miimon=300 mode=1 primary=em1',
},
},
netboot => true,
gateway => '192.168.1.1',
hostname => 'somehost.example.com',
require => Service[$cobbler::service_name],
}
This module was on:
- CentOS 6/7
- Ubuntu LTS 12.04/14.04
Module depends on:
Ensure the EPEL repo (or another repo containing a suitable Cobbler version) is present.
This module is not tested on a system with SELinux in enforcing
mode.
Please set the SELinux to permissive
.
This module is maintained by Lutak Srce. Lutak Srce welcomes new contributions to this module, especially those that include documentation and rspec tests. We are happy to provide guidance if necessary.
Please see CONTRIBUTING for more details.
- jsosic ([email protected])
- Lutak Srce team