Skip to content

Commit fbb3af5

Browse files
authored
Fine tune Network Boot provisioning (#4040)
1 parent 8c391f7 commit fbb3af5

10 files changed

+214
-157
lines changed

guides/common/assembly_using-network-boot-to-provision-hosts.adoc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
:using-network-boot-to-provision-hosts:
44
:parent-context: {context}
5-
:context: using-netboot
5+
:context: using-network-boot
66

77
include::modules/con_using-network-boot-to-provision-hosts.adoc[]
88

@@ -147,12 +147,16 @@ endif::[]
147147

148148
include::modules/proc_creating-hosts-with-pxe-boot-provisioning.adoc[leveloffset=+1]
149149

150+
include::modules/proc_configuring-smartproxy-for-uefi-http-booting.adoc[leveloffset=+1]
151+
150152
include::modules/proc_creating-hosts-with-uefi-http-boot-provisioning.adoc[leveloffset=+1]
151153

152154
include::modules/proc_deploying-ssh-keys-during-provisioning.adoc[leveloffset=+1]
153155

154156
include::assembly_using-ipxe-to-reduce-provisioning-times.adoc[leveloffset=+1]
155157

158+
include::modules/ref_pxe-loaders.adoc[leveloffset=+1]
159+
156160
:context: {parent-context}
157161
:!parent-context:
158162
:!using-network-boot-to-provision-hosts:

guides/common/modules/con_configuring-smartproxy-for-secure-boot.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
[id="configuring-{smart-proxy-context}-for-secure-boot"]
44
= Configuring {SmartProxy} for Secure Boot
55

6-
If you want to provision Secure Boot enabled hosts, configure your {SmartProxy} for the provisionable operating system.
6+
If you want to provision Secure Boot enabled hosts, configure your {SmartProxy} for the client operating system.

guides/common/modules/con_prerequisites-for-network-boot-provisioning.adoc

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,25 @@
55

66
The requirements for network-boot provisioning include:
77

8-
* {SmartProxy} managing the network for the network-booted machines.
9-
For unattended provisioning and discovery-based provisioning, {Project} requires PXE server settings.
8+
* Provisioning infrastructure services (DNS, DHCP, TFTP) are integrated with {Project} and configured.
9+
ifndef::satellite[]
10+
* Provisioning templates are associated with a client operating system.
1011
+
11-
For more information about networking requirements, see xref:preparing-networking[].
12+
For BIOS provisioning, you must associate a PXELinux template with the operating system.
13+
For UEFI provisioning, you must associate a PXEGrub2 template with the operating system.
14+
If you associate both PXELinux and PXEGrub2 templates, {Project} deploys configuration files for both on a TFTP server, so that you can switch between PXE loaders easily.
15+
endif::[]
16+
* A bare-metal machine or a blank virtual machine.
17+
The provisioned machine must appear on the same network as your provisioning infrastructure services.
1218
+
13-
For more information about the Discovery service, see xref:discovering-hosts-on-a-network[].
14-
15-
* A bare-metal host or a blank VM.
19+
You can integrate a compute resource with {Project} and let the compute resource create virtual machines through this integration.
20+
You can also provision virtual machines from unintegrated infrastructure as you would bare-metal machines.
1621
include::snip_prerequisites-common-compute-resource.adoc[]
1722

18-
For information about the security token for unattended and PXE-less provisioning, see xref:configuring-the-security-token-validity-duration[].
23+
[role="_additional-resources"]
24+
.Additional resources
25+
* {IntegratingProvisioningInfrastructureServicesDocURL}[{IntegratingProvisioningInfrastructureServicesDocTitle}]
26+
* xref:preparing-networking[]
27+
* xref:associating-templates-with-operating-systems[]
28+
* xref:discovering-hosts-on-a-network[]
29+
* xref:configuring-the-security-token-validity-duration[]

guides/common/modules/con_using-network-boot-to-provision-hosts.adoc

Lines changed: 9 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -3,87 +3,27 @@
33
[id="using-network-boot-to-provision-hosts"]
44
= Using network boot to provision hosts
55

6-
You can provision bare-metal instances with {Project} by using one of the following methods:
6+
After integrating provisioning infrastructure services with {Project}, you can provision hosts with {ProjectName} by booting hosts over a network.
7+
Once the host boots, {ProjectServer} or {SmartProxyServer} provides operating system installation content that the host downloads.
8+
After the operating system has been installed, the host registers to {Project} and {Project} performs an initial configuration of the host.
79

8-
Unattended Provisioning::
9-
New hosts are identified by a MAC address.
10-
{ProjectServer} provisions the host by using a PXE boot process.
11-
12-
Unattended Provisioning with Discovery::
13-
New hosts use PXE boot to load the {Project} Discovery service.
14-
This service identifies hardware information about the host and lists it as an available host to provision.
15-
For more information, see xref:discovering-hosts-on-a-network[].
16-
17-
PXE-less Provisioning::
18-
ifndef::satellite[]
19-
New hosts are provisioned with a boot disk or PXE-less discovery image that {ProjectServer} generates.
20-
21-
PXE-less Provisioning with Discovery::
22-
New hosts use an ISO boot disk that loads the {Project} Discovery service.
23-
This service identifies hardware information about the host and lists it as an available host to provision.
24-
For more information, see xref:discovery-in-pxeless-mode[].
25-
endif::[]
26-
ifdef::satellite[]
27-
New hosts are provisioned with a boot disk image that {ProjectServer} generates.
28-
endif::[]
29-
30-
ifndef::satellite[]
31-
[NOTE]
32-
====
33-
Discovery workflows are only available if the Discovery plug-in is installed.
34-
For more information, see xref:discovering-hosts-on-a-network[].
35-
====
36-
endif::[]
37-
38-
.BIOS and UEFI support
39-
With {ProjectName}, you can perform both BIOS and UEFI based PXE provisioning.
10+
.BIOS and UEFI interfaces
4011
Both BIOS and UEFI interfaces work as interpreters between the operating system and firmware of a computer, initializing hardware components and starting the operating system at boot time.
12+
With {Project}, you can perform both BIOS and UEFI based PXE provisioning.
13+
For UEFI interfaces with an HTTP boot client, you can also perform UEFI HTTP provisioning.
4114

42-
.PXE loaders
43-
In {Project} provisioning, the PXE loader option defines the DHCP `filename` option to use during provisioning.
44-
45-
* For BIOS systems, select the *PXELinux BIOS* option to enable a provisioned host to download the `pxelinux.0` file over TFTP.
46-
* For UEFI systems, select the *Grub2 UEFI* option to enable a TFTP client to download `grubx64.efi` file, or select the *Grub2 UEFI HTTP* option to enable an UEFI HTTP client to download `grubx64.efi` with the HTTP Boot feature.
47-
48-
{ProjectName} supports provisioning hosts with UEFI Secure Boot.
49-
SecureBoot PXE loaders enable a client to download the `shimx64.efi` bootstrap boot loader that then loads the signed `grubx64.efi`.
50-
Use the *Grub2 UEFI SecureBoot* PXE loader for PXE-boot provisioning.
51-
ifndef::satellite[]
52-
Use the *Grub2 UEFI HTTPS SecureBoot* PXE loader for HTTP-boot provisioning.
53-
endif::[]
54-
15+
.UEFI Secure Boot
16+
{ProjectName} supports host provisioning with UEFI Secure Boot.
5517
ifdef::satellite[]
5618
By default, you can provision the same RHEL version as your {ProjectServer} on Secure Boot enabled hosts.
5719
To provision other versions of {RHEL}, you have to provide signed shim and GRUB2 binaries of those RHEL versions.
58-
For more information, see xref:configuring-{smart-proxy-context}-to-provision-rhel-on-Secure-Boot-enabled-hosts[].
5920
endif::[]
6021
ifndef::satellite[]
6122
By default, you can provision operating systems from the vendor of the operating system of your {ProjectServer} on Secure Boot enabled hosts.
6223
To provision operating systems on Secure Boot enabled hosts from different vendors, you have to provide signed shim and GRUB2 binaries provided by the vendor of your operating system.
6324
endif::[]
6425
ifndef::orcharhino,satellite[]
65-
For more information, see:
66-
67-
* xref:configuring-{smart-proxy-context}-to-provision-almalinux-on-Secure-Boot-enabled-hosts[]
68-
* xref:configuring-{smart-proxy-context}-to-provision-debian-on-Secure-Boot-enabled-hosts[]
69-
* xref:configuring-{smart-proxy-context}-to-provision-rhel-on-Secure-Boot-enabled-hosts[]
70-
* xref:configuring-{smart-proxy-context}-to-provision-rocky-on-Secure-Boot-enabled-hosts[]
71-
* xref:configuring-{smart-proxy-context}-to-provision-ubuntu-on-Secure-Boot-enabled-hosts[]
72-
endif::[]
73-
74-
ifdef::satellite[]
75-
For more information about supported workflows, see https://access.redhat.com/solutions/2674001[Supported architectures and provisioning scenarios].
76-
endif::[]
77-
ifndef::orcharhino,satellite[]
78-
Other PXE loaders like *PXELinux UEFI*, *Grub2 ELF* or *iPXE Chain*, require additional configuration.
79-
These workflows are not documented.
80-
endif::[]
81-
82-
ifndef::satellite[]
83-
.Template association with operating systems
84-
For BIOS provisioning, you must associate a PXELinux template with the operating system.
85-
For UEFI provisioning, you must associate a PXEGrub2 template with the operating system.
86-
If you associate both PXELinux and PXEGrub2 templates, {Project} deploys configuration files for both on a TFTP server, so that you can switch between PXE loaders easily.
26+
For more information, see xref:configuring-{smart-proxy-context}-for-secure-boot[].
8727
endif::[]
8828

8929
.Bonded network interfaces
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
:_mod-docs-content-type: PROCEDURE
2+
3+
[id="configuring-{smart-proxy-context}-for-uefi-http-booting"]
4+
= Configuring {SmartProxy} for UEFI HTTP booting
5+
6+
You can provision hosts from {Project} by using the UEFI HTTP Boot if the hosts have this capability.
7+
Configure your {SmartProxy} for UEFI HTTP booting.
8+
9+
.Prerequisites
10+
* Ensure that your environment meets the requirements for HTTP booting.
11+
For more information, see {PlanningDocURL}http-booting[HTTP booting] in _{PlanningDocTitle}_.
12+
13+
.Procedure
14+
ifndef::satellite[]
15+
. On your {SmartProxy}, enable the `foreman-proxy-http`, `foreman-proxy-httpboot`, and `foreman-proxy-tftp` features:
16+
+
17+
[options="nowrap" subs="+quotes,attributes"]
18+
----
19+
# {foreman-installer} \
20+
--foreman-proxy-http true \
21+
--foreman-proxy-httpboot true \
22+
--foreman-proxy-tftp true
23+
----
24+
endif::[]
25+
. Ensure that {SmartProxy} is associated with the provisioning subnet.
26+
In the {ProjectWebUI}, navigate to *Infrastructure* > *Subnets*.
27+
. Click *Edit Subnet* > *{SmartProxies}*.
28+
. Select the {SmartProxy} for both *TFTP* and *HTTPBoot* options.
29+
. Click *OK* to save.
30+
31+
ifndef::satellite[]
32+
.Verification
33+
* Ensure that the {SmartProxy} has TFTP and HTTPBoot features recognized.
34+
In the {ProjectWebUI}, navigate to *Infrastructure* > *{SmartProxies}* and click on {SmartProxy} to see the list of recognized features.
35+
Click *Refresh Features* if any of the features are missing.
36+
endif::[]
37+
38+
[role="_additional-resources"]
39+
.Next steps
40+
* xref:creating-hosts-with-uefi-http-boot-provisioning[]

guides/common/modules/proc_creating-hosts-with-pxe-boot-provisioning.adoc

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,24 @@
33
[id="creating-hosts-with-pxe-boot-provisioning"]
44
= Creating hosts with PXE boot provisioning
55

6-
Unattended provisioning is the simplest form of host provisioning.
6+
PXE boot provisioning is a method of unattended host provisioning that requires minimal interaction during the process.
7+
78
You enter the host details on {ProjectServer} and boot your host.
89
{ProjectServer} automatically manages the PXE configuration, organizes networking services, and provides the operating system and configuration for the host.
910

10-
This method of provisioning hosts uses minimal interaction during the process.
11+
Create a host entry to add the host details.
12+
When you save the host entry, {Project} creates the relevant provisioning settings.
13+
This also includes creating the necessary directories and files for PXE booting.
14+
When you boot the host, the host requests a DHCP lease.
15+
The DHCP service responds with a lease which includes the location of the installation content.
16+
The host uses the installation content to install the operating system.
17+
18+
ifdef::katello,satellite,orcharhino[]
19+
During the installation, the host registers to {ProjectServer} by using the activation key, installs the necessary host management tools from the {project-client-name} repository, and performs initial configuration.
20+
endif::[]
21+
ifndef::katello,satellite,orcharhino[]
22+
During the installation, the host registers to {ProjectServer} and performs initial configuration.
23+
endif::[]
1124

1225
To use the CLI instead of the {ProjectWebUI}, see the xref:cli-creating-hosts-with-pxe-boot-provisioning[].
1326

@@ -18,25 +31,15 @@ include::snip_steps-create-a-host-tab-interfaces.adoc[]
1831
Confirm each aspect of the operating system.
1932
. Optional: Click *Resolve* in *Provisioning template* to check the new host can identify the right provisioning templates to use.
2033
+
21-
For more information about associating provisioning templates, see xref:provisioning-templates[].
34+
For more information about provisioning templates, see xref:provisioning-templates[].
2235
ifdef::katello,satellite,orcharhino[]
2336
include::snip_step-parameter-ak.adoc[]
2437
endif::[]
2538
. Click *Submit* to save the host details.
26-
+
27-
For more information about network interfaces, see {ManagingHostsDocURL}configuring-network-interfaces[Configuring network interfaces] in _{ManagingHostsDocTitle}_.
28-
29-
This creates the host entry and the relevant provisioning settings.
30-
This also includes creating the necessary directories and files for PXE booting the bare-metal host.
31-
If you start the physical host and set its boot mode to PXE, the host detects the DHCP service of {ProjectServer}'s integrated {SmartProxy}, receives HTTP endpoint of the Kickstart tree and installs the operating system.
32-
33-
ifdef::katello,satellite,orcharhino[]
34-
When the installation completes, the host also registers to {ProjectServer} using the activation key and installs the necessary configuration and management tools from the {project-client-name} repository.
35-
endif::[]
3639

3740
[id="cli-creating-hosts-with-pxe-boot-provisioning"]
3841
.CLI procedure
39-
. Create the host with the `hammer host create` command:
42+
. Create the host by using Hammer:
4043
+
4144
[options="nowrap" subs="+quotes"]
4245
----

guides/common/modules/proc_creating-hosts-with-uefi-http-boot-provisioning.adoc

Lines changed: 26 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -3,70 +3,51 @@
33
[id="creating-hosts-with-uefi-http-boot-provisioning"]
44
= Creating hosts with UEFI HTTP boot provisioning
55

6-
You can provision hosts from {Project} using the UEFI HTTP Boot.
6+
You can provision hosts from {Project} by using the UEFI HTTP Boot if the hosts have this capability.
7+
In HTTP boot, configuration files are transferred over HTTP instead of TFTP as in PXE boot.
8+
Using this method can help reduce the booting time during host provisioning.
9+
HTTP is also more reliable for transfer of large files, such as Live images, than TFTP.
10+
11+
You enter the host details on {ProjectServer} and boot your host.
12+
{ProjectServer} automatically manages the HTTP boot configuration, organizes networking services, and provides the operating system and configuration for the host.
13+
14+
Create a host entry to add the host details.
15+
When you save the host entry, {Project} creates the relevant provisioning settings.
16+
This also includes creating the necessary directories and files for PXE booting.
17+
When you boot the host, the host requests a DHCP lease.
18+
The DHCP service responds with a lease which includes the location of the installation content.
19+
The host uses the installation content to install the operating system.
20+
21+
ifdef::katello,satellite,orcharhino[]
22+
During the installation, the host registers to {ProjectServer} by using the activation key, installs the necessary host management tools from the {project-client-name} repository, and performs initial configuration.
23+
endif::[]
24+
ifndef::katello,satellite,orcharhino[]
25+
During the installation, the host registers to {ProjectServer} and performs initial configuration.
26+
endif::[]
727

828
To use the CLI instead of the {ProjectWebUI}, see the xref:cli-creating-hosts-with-uefi-http-boot-provisioning_{context}[].
929

1030
.Prerequisites
11-
* Ensure that you meet the requirements for HTTP booting.
12-
ifndef::orcharhino[]
13-
For more information, see {PlanningDocURL}http-booting[HTTP booting] in _{PlanningDocTitle}_.
14-
endif::[]
31+
* Your {SmartProxy} has been configured for UEFI HTTP booting.
32+
For more information, see xref:configuring-{smart-proxy-context}-for-uefi-http-booting[].
1533

1634
.Procedure
17-
. Enable `foreman-proxy-http`, `foreman-proxy-httpboot`, and `foreman-proxy-tftp` features.
18-
+
19-
[options="nowrap" subs="+quotes,attributes"]
20-
----
21-
# {foreman-installer} \
22-
--foreman-proxy-http true \
23-
--foreman-proxy-httpboot true \
24-
--foreman-proxy-tftp true
25-
----
26-
. Ensure that the {SmartProxy} has TFTP and HTTPBoot features recognized.
27-
In the {ProjectWebUI}, navigate to *Infrastructure* > *{SmartProxies}* and click on {SmartProxy} to see the list of recognized features.
28-
Click *Refresh Features* if any of the features are missing.
29-
. Ensure that {SmartProxy} is associated with the provisioning subnet.
30-
In the {ProjectWebUI}, navigate to *Infrastructure* > *Subnets* > *Edit Subnet* > *{SmartProxies}* and select the {SmartProxy} for both *TFTP* and *HTTPBoot* options.
31-
. Click *OK* to save.
3235
include::snip_steps-create-a-host-tab-host.adoc[]
3336
include::snip_steps-create-a-host-tab-interfaces.adoc[]
3437
. Click the *Operating System* tab, and verify that all fields contain values.
3538
Confirm each aspect of the operating system.
3639
. From the *PXE Loader* list, select *Grub2 UEFI HTTP*.
3740
. Optional: Click *Resolve* in *Provisioning template* to check the new host can identify the right provisioning templates to use.
3841
+
39-
For more information about associating provisioning templates, see xref:creating-provisioning-templates[].
42+
For more information about provisioning templates, see xref:provisioning-templates[].
4043
ifdef::katello,satellite,orcharhino[]
4144
include::snip_step-parameter-ak.adoc[]
4245
endif::[]
4346
. Click *Submit* to save the host details.
44-
+
45-
For more information about network interfaces, see {ManagingHostsDocURL}configuring-network-interfaces[Configuring network interfaces] in _{ManagingHostsDocTitle}_.
46-
. Set the host to boot in UEFI mode from network.
47-
. Start the host.
48-
. From the boot menu, select *Kickstart default PXEGrub2*.
49-
50-
This creates the host entry and the relevant provisioning settings.
51-
This also includes creating the necessary directories and files for UEFI booting the bare-metal host.
52-
When you start the physical host and set its boot mode to UEFI HTTP, the host detects the defined DHCP service, receives HTTP endpoint of {SmartProxy} with the Kickstart tree and installs the operating system.
53-
54-
ifdef::katello,satellite,orcharhino[]
55-
When the installation completes, the host also registers to {ProjectServer} using the activation key and installs the necessary configuration and management tools from the {project-client-name} repository.
56-
endif::[]
5747

5848
[id="cli-creating-hosts-with-uefi-http-boot-provisioning_{context}"]
5949
.CLI procedure
60-
. Enable `foreman-proxy-http`, `foreman-proxy-httpboot`, and `foreman-proxy-tftp true` features:
61-
+
62-
[options="nowrap" subs="+quotes,attributes"]
63-
----
64-
# {foreman-installer} \
65-
--foreman-proxy-http true \
66-
--foreman-proxy-httpboot true \
67-
--foreman-proxy-tftp true
68-
----
69-
. Create the host with the `hammer host create` command.
50+
. Create the host by using Hammer:
7051
+
7152
[options="nowrap" subs="+quotes"]
7253
----
@@ -81,7 +62,7 @@ $ hammer host create \
8162
--organization "_My_Organization_" \
8263
--pxe-loader "Grub2 UEFI HTTP"
8364
----
84-
. Ensure the network interface options are set using the `hammer host interface update` command:
65+
. Configure the network interface:
8566
+
8667
[options="nowrap" subs="+quotes"]
8768
----
@@ -91,14 +72,3 @@ $ hammer host interface update \
9172
--primary true \
9273
--provision true
9374
----
94-
. Set the host to boot in UEFI mode from network.
95-
. Start the host.
96-
. From the boot menu, select *Kickstart default PXEGrub2*.
97-
98-
This creates the host entry and the relevant provisioning settings.
99-
This also includes creating the necessary directories and files for UEFI booting the bare-metal host.
100-
When you start the physical host and set its boot mode to UEFI HTTP, the host detects the defined DHCP service, receives HTTP endpoint of {SmartProxy} with the Kickstart tree and installs the operating system.
101-
102-
ifdef::katello,satellite,orcharhino[]
103-
When the installation completes, the host also registers to {ProjectServer} using the activation key and installs the necessary configuration and management tools from the {project-client-name} repository.
104-
endif::[]

0 commit comments

Comments
 (0)