Version information
This version is compatible with:
- Puppet Enterprise 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 3.8.0 < 5.0.0
This module has been deprecated by its author since Jan 12th 2021.
The author has suggested puppet-pxe as its replacement.
Start using this module
Documentation
Puppet Powered PXE Provisioning
Super awesome Puppet powered PXE menu and image management for network based installations. Seriously. Its awesome.
Features
- Automatic image fetching
- Menu management for easy selection at boot time
- Host specific menu management
- Supported OSs
- Debian
- Ubuntu
- CentOS
- RetHat (with
baseurl
) - Fedora
- Scientific
- CoreOS
Dependencies
You will need a running TFTP configured. The module now depends on the
puppetlabs/tftp
module.
Sample Usage
Basic setup
class { 'tftp': }
class { 'pxe': }
This will setup a tftp server and directory and install pxelinux into it with a base configuration.
Images
Here is a sample of how one might stage the network installation images and build menus for selection at boot time.
First, we start by dragging in the pre-reqs for the whole process.
include pxe
Next, lets loop over some data and create a few pxe::installer
resources
using the new Puppet language methods.
$debian_architectures = ['amd64', 'i386']
$debian_versions = ['squeeze', 'wheezy', 'jessie']
$debian_versions.each |$ver| {
$os = 'debian'
$debian_architectures.each |$arch| {
pxe::installer { "${os}_${ver}_${arch}":
arch => $arch,
ver => $ver,
os => $os,
file => 'os_${os}',
kernel => 'images/${os}/${ver}/${arch}/linux',
append => 'initrd=images/${os}/${ver}/${arch}/initrd.gz text',
}
}
}
This structure could be extended considerably, but it paints a picture for how
to build a bunch of resources using the puppet iteration. This module used to
recommend use of the resource_permute()
function, but that was long before
the new Puppet4 language constructs replaced the need for this function. As
such, its recommended that you use the pxe::installer
resources directly.
Syslinux
By default this module will install the latest version of syslinux, downloaded from kernel.org (You can see the latest version in the manifests/params.pp) file. To install the version that ships with your OS, or to specify a version, pass the syslinux variable to pxe.
For Example:
class { 'pxe': syslinux_version => 'system', }
Menus
include pxe
pxe::menu { 'Main Menu':
file => 'default',
template => 'pxe/menu_default.erb';
}
pxe::menu::entry { 'Installations':
file => 'default',
append => 'pxelinux.cfg/menu_install',
}
pxe::menu { "Operating System (${arch})":
file => 'menu_install',
}
pxe::menu { 'Debian':
file => 'os_debian',
}
Host Configs
pxe::menu::entry { "server1.dyrden.net":
file => "01-aa-bb-cc-dd-ee-ff",
kernel => "images/debian/i386/squeeze/squeeze",
append => "vga=791 initrd=images/debian/i386/squeeze/squeeze.gz",
}
2018-05-26 1.0.0
Modulesync updates and add a syslinux version parameter to support older versions of syslinux.
2017-09-23 0.4.0
Summary
This release contains cleanups of unused files and README updates to point users in the right direction for new puppet syntax.
2017-01-30 0.3.0
Summary
This release contains updates to testing, and supported versions.
Testing
- Drop older versions of the Puppet 3.x from testing
- Improve basic unit tests
Features
- Fixes for mfsbsd image deployment
2016-12-29 0.2.0
Summary
This release contains updates for testing updates and mfsbsd image handling updates.
Testing
JSON gems have been pinned for ruby versions.
Features
Improve mfsbsd support for newer FreeBSD.
2016-04-22 0.1.5
Summary
This release contains bugfixes to the handling of the template parameter on a couple of class.
Bugfixes
- Fix template parameter handling to use received template in file resource for installentry and entry classes.
Dependencies
- puppetlabs/concat (>=1.2.1 < 2.3.0)
- puppetlabs/stdlib (>=4.4.0 < 4.16.0)
- puppetlabs/tftp (>= 0.2.0 < 1.0.0)