Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x
- Puppet >= 5.5.8 < 7.0.0
This module has been deprecated by its author since Aug 19th 2024.
The reason given was: Deprecating it on Forge as per owner request.
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",
}
Changelog
All notable changes to this project will be documented in this file. Each new release typically also includes the latest modulesync defaults. These should not affect the functionality of the module.
v2.0.0 (2020-01-22)
Breaking changes:
Closed issues:
- syslinux url is no longer valid #49
Merged pull requests:
- Update from xaque208 modulesync_config #48 (xaque208)
- Update from xaque208 modulesync_config #47 (xaque208)
1.0.1 (2019-02-27)
Closed issues:
- Make "menu_tools" optional #44
Merged pull requests:
- Update from xaque208 modulesync_config #46 (xaque208)
- Make
tools
menu optional #45 (alexizmailov)
1.0.0 (2018-05-27)
Merged pull requests:
- Update from xaque208 modulesync_config #43 (xaque208)
- Adding a syslinux version parameter to support older versions of syslinux. #42 (mikkergimenez)
- modulesync 1.9.0-16-gc46b42a #41 (xaque208)
0.4.0 (2017-09-23)
Closed issues:
- Failed to parse inline template: undefined local variable or method `arch' #34
Merged pull requests:
- use new syntax (lint warn) and remove unused files #38 (PascalBourdier)
- Update the readme for pxe::installer usage #37 (xaque208)
0.3.0 (2017-01-30)
Closed issues:
Merged pull requests:
0.2.0 (2016-12-29)
Merged pull requests:
- Fix JSON gem dependencies for Ruby #31 (xaque208)
- add mfsbsd variants, ver > 10, docs and validation #30 (cruwe)
0.1.5 (2016-04-22)
Closed issues:
- Release 0.1.4 #28
Merged pull requests:
0.1.4 (2016-04-18)
Merged pull requests:
0.1.3 (2016-04-04)
Merged pull requests:
0.1.2 (2015-09-15)
Closed issues:
- Multiple issues when specifying images #14
Merged pull requests:
0.1.1 (2015-06-14)
Merged pull requests:
- Allow using different Ubuntu netboots #23 (dmsimard)
- added support for CoreOS #21 (gehel)
- Make it so it is possible to override baseurl #18 (dmsimard)
0.1.0 (2014-10-19)
Merged pull requests:
0.0.9 (2014-07-01)
Closed issues:
- err: Failed to apply catalog: Could not find dependent #7
Merged pull requests:
0.0.8 (2014-04-25)
Merged pull requests:
- Escaped all variables for style #12 (WhatsARanjit)
- Just changing a // into a / #11 (WhatsARanjit)
- Adjusting module for Rapid Deployment #10 (WhatsARanjit)
- Updated all templates to use "@variable_name" to get rid of "deprecated" warnings #9 (fvoges)
- Make the pxe::images reosurce safer for RHEL #8 (trlinkin)
- (maint) Add Travis CI testing #6 (xaque208)
- Add path to gunzip for Debian systems #5 (diddi-)
0.0.7 (2013-05-12)
Closed issues:
- README does not mention dependency on tftp #4
Merged pull requests:
0.0.6 (2013-05-02)
Closed issues:
- Modulefile dependencies #2
0.0.5 (2013-04-22)
Closed issues:
- Menu system needs work #1
0.0.4 (2013-01-24)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/concat (>= 4.1.0 < 7.0.0)
- puppetlabs/stdlib (>= 4.25.0 < 7.0.0)
- puppetlabs/tftp (>= 0.2.0 < 2.0.0)