Getting started¶
Debian netboot installer support¶
By default the role will download and prepare a set of Debian netboot installers for various OS releases. The Debian installers will be available via the boot menu, with a possibility to boot into the text, graphical or expert install. A preseeded configuration is also available for larger environments.
Optionally, the role can include the non-free firmware required by certain
devices (for example network cards) for convenience.The installation of the
non-free firmware is disabled by default, you can enable it using the
ipxe__debian_netboot_firmware
variable. The firmware will also be
enabled automatically if non-free repositories are configured on the host in
APT.
Additional services required¶
The debops.ipxe
role relies on other DebOps roles to provide the needed
DHCP and TFTP services. You can use either debops.dnsmasq on an internal
network to configure DHCP, DNS, PXE and TFTP services, or use
debops.dhcpd and debops.tftpd roles to set up a more
comprehensive network environment.
Example inventory¶
To configure iPXE boot firmware on a given host, you need to include in the
[debops_service_ipxe]
Ansible inventory group:
[debops_service_ipxe]
hostname
If you are using debops.dnsmasq to provide DHCP and TFTP services, you can configure iPXE environment on the same host. Alternatively, debops.tftpd role can be used to provide TFTP service on a separate host on the network, which is then specified via DHCP as the "next server" for other hosts to boot from.
Example playbook¶
If you are using this role without DebOps, here's an example Ansible playbook
that uses the debops.ipxe
role:
---
- name: Manage iPXE configuration files
collections: [ 'debops.debops', 'debops.roles01',
'debops.roles02', 'debops.roles03' ]
hosts: [ 'debops_service_ipxe' ]
become: True
environment: '{{ inventory__environment | d({})
| combine(inventory__group_environment | d({}))
| combine(inventory__host_environment | d({})) }}'
roles:
- role: ipxe
tags: [ 'role::ipxe', 'skip::ipxe' ]
Ansible tags¶
You can use Ansible --tags
or --skip-tags
parameters to limit what
tasks are performed during Ansible run. This can be used after a host was first
configured to speed up playbook execution, when you are sure that most of the
configuration is already in the desired state.
Available role tags:
role::ipxe
- Main role tag, should be used in the playbook to execute all of the role tasks as well as role dependencies.
Other resources¶
List of other useful resources related to the debops.ipxe
Ansible role:
- iPXE scripting documentation, command reference
- Installing Debian using network booting
- Non-free firmware in Debian documentation page
- How to include non-free firmware in Debian netboot installer
- netboot.xyz - public network boot server, available from DebOps Boot Menu
- SAL's Boot Menu - another public network boot server available via DebOps Boot Menu
- Rackspace Boot Server, available via DebOps Boot Menu