{"id":15103546,"url":"https://github.com/voxpupuli/puppet-pxe","last_synced_at":"2025-09-27T02:31:34.484Z","repository":{"id":1503170,"uuid":"1757729","full_name":"voxpupuli/puppet-pxe","owner":"voxpupuli","description":"Puppet module for deploying a PXE boot server","archived":true,"fork":false,"pushed_at":"2024-07-09T17:49:10.000Z","size":321,"stargazers_count":51,"open_issues_count":4,"forks_count":37,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-09-08T21:12:48.107Z","etag":null,"topics":["bsd-puppet-module","freebsd-puppet-module","hacktoberfest","puppet"],"latest_commit_sha":null,"homepage":"https://forge.puppet.com/puppet/pxe","language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voxpupuli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"open_collective":"vox-pupuli","github":"voxpupuli"}},"created_at":"2011-05-16T21:19:39.000Z","updated_at":"2024-11-03T11:14:01.000Z","dependencies_parsed_at":"2023-12-19T08:35:03.453Z","dependency_job_id":"0afe0405-6216-45c8-89e3-d10730e5d2d9","html_url":"https://github.com/voxpupuli/puppet-pxe","commit_stats":{"total_commits":255,"total_committers":27,"mean_commits":9.444444444444445,"dds":0.4274509803921569,"last_synced_commit":"e7d2ddbaeb142913573e28cee202719320bb8718"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/voxpupuli/puppet-pxe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-pxe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-pxe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-pxe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-pxe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voxpupuli","download_url":"https://codeload.github.com/voxpupuli/puppet-pxe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-pxe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275720556,"owners_count":25515832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bsd-puppet-module","freebsd-puppet-module","hacktoberfest","puppet"],"created_at":"2024-09-25T19:40:24.206Z","updated_at":"2025-09-27T02:31:34.169Z","avatar_url":"https://github.com/voxpupuli.png","language":"Puppet","funding_links":["https://opencollective.com/vox-pupuli","https://github.com/sponsors/voxpupuli"],"categories":[],"sub_categories":[],"readme":"# Puppet Powered PXE Provisioning\n\n[![Build Status](https://travis-ci.org/voxpupuli/puppet-pxe.png?branch=master)](https://travis-ci.org/voxpupuli/puppet-pxe)\n[![Code Coverage](https://coveralls.io/repos/github/voxpupuli/puppet-pxe/badge.svg?branch=master)](https://coveralls.io/github/voxpupuli/puppet-pxe)\n[![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/pxe.svg)](https://forge.puppetlabs.com/puppet/pxe)\n[![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/pxe.svg)](https://forge.puppetlabs.com/puppet/pxe)\n[![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/puppet/pxe.svg)](https://forge.puppetlabs.com/puppet/pxe)\n[![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/pxe.svg)](https://forge.puppetlabs.com/puppet/pxe)\n\nSuper awesome Puppet powered PXE menu and image management for network based\ninstallations.  Seriously.  Its awesome.\n\nFeatures\n--------\n  * Automatic image fetching\n  * Menu management for easy selection at boot time\n  * Host specific menu management\n  * Supported OSs\n    * Debian\n    * Ubuntu\n    * CentOS\n    * RetHat (with `baseurl`)\n    * Fedora\n    * Scientific\n    * CoreOS\n\nDependencies\n---\n\nYou will need a running TFTP configured.  The module now depends on the\n`puppetlabs/tftp` module.\n\n## Sample Usage\n\n# Basic setup\n\n```Puppet\nclass { 'tftp': }\nclass { 'pxe': }\n```\n\nThis will setup a tftp server and directory and install pxelinux into it with a\nbase configuration.\n\n### Images\n\nHere is a sample of how one might stage the network installation images and\nbuild menus for selection at boot time.\n\nFirst, we start by dragging in the pre-reqs for the whole process.\n\n```Puppet\ninclude pxe\n```\n\nNext, lets loop over some data and create a few `pxe::installer` resources\nusing the new Puppet language methods.\n\n```Puppet\n$debian_architectures = ['amd64', 'i386']\n$debian_versions = ['squeeze', 'wheezy', 'jessie']\n\n$debian_versions.each |$ver| {\n  $os = 'debian'\n\n  $debian_architectures.each |$arch| {\n\n    pxe::installer { \"${os}_${ver}_${arch}\":\n      arch   =\u003e $arch,\n      ver    =\u003e $ver,\n      os     =\u003e $os,\n      file   =\u003e \"os_${os}\",\n      kernel =\u003e \"images/${os}/${ver}/${arch}/linux\",\n      append =\u003e \"initrd=images/${os}/${ver}/${arch}/initrd.gz text\",\n    }\n  }\n}\n```\n\nThis structure could be extended considerably, but it paints a picture for how\nto build a bunch of resources using the puppet iteration.  This module used to\nrecommend use of the `resource_permute()` function, but that was long before\nthe new Puppet4 language constructs replaced the need for this function.  As\nsuch, its recommended that you use the `pxe::installer` resources directly.\n\n## Syslinux\n\nBy default this module will install the latest version of syslinux, downloaded\nfrom kernel.org (You can see the latest version in the manifests/params.pp)\nfile.  To install the version that ships with your OS, or to specify a version,\npass the syslinux variable to pxe.\n\nFor Example:\n\nclass { 'pxe':\n  syslinux_version =\u003e 'system',\n}\n\n### Menus\n\n```Puppet\ninclude pxe\n\npxe::menu { 'Main Menu':\n  file     =\u003e 'default',\n  template =\u003e 'pxe/menu_default.erb';\n}\n\npxe::menu::entry { 'Installations':\n  file    =\u003e 'default',\n  append  =\u003e 'pxelinux.cfg/menu_install',\n}\n\npxe::menu { \"Operating System (${arch})\":\n  file =\u003e 'menu_install',\n}\n\npxe::menu { 'Debian':\n  file =\u003e 'os_debian',\n}\n```\n\n### Host Configs\n\n```Puppet\npxe::menu::entry { \"server1.dyrden.net\":\n  file    =\u003e \"01-aa-bb-cc-dd-ee-ff\",\n  kernel  =\u003e \"images/debian/i386/squeeze/squeeze\",\n  append  =\u003e \"vga=791 initrd=images/debian/i386/squeeze/squeeze.gz\",\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-pxe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoxpupuli%2Fpuppet-pxe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-pxe/lists"}