Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions guides/common/assembly_provisioning-requirements.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ include::modules/con_pxe-booting-requirements.adoc[leveloffset=+2]

include::modules/con_http-booting.adoc[leveloffset=+1]

include::modules/con_http-booting-requirements-with-managed-dhcp.adoc[leveloffset=+2]
include::modules/con_uefi-http-booting-requirements-with-managed-dhcp.adoc[leveloffset=+2]

include::modules/con_http-booting-requirements-with-unmanaged-dhcp.adoc[leveloffset=+2]
include::modules/con_uefi-http-booting-requirements-with-unmanaged-dhcp.adoc[leveloffset=+2]

ifdef::foreman-el,katello,orcharhino[]
include::modules/con_secure-boot.adoc[leveloffset=+1]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,10 +147,14 @@ endif::[]

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

include::modules/proc_configuring-smartproxy-for-uefi-http-booting.adoc[leveloffset=+1]
include::modules/proc_configuring-smart-proxy-for-http-booting.adoc[leveloffset=+1]

include::modules/proc_creating-hosts-with-uefi-http-boot-provisioning.adoc[leveloffset=+1]

include::modules/proc_creating-hosts-with-boot-loader-http-boot-provisioning-by-using-web-ui.adoc[leveloffset=+1]

include::modules/proc_creating-hosts-with-boot-loader-http-boot-provisioning-by-using-cli.adoc[leveloffset=+1]

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

include::assembly_using-ipxe-to-reduce-provisioning-times.adoc[leveloffset=+1]
Expand Down
14 changes: 13 additions & 1 deletion guides/common/modules/con_http-booting.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,16 @@
[id="http-booting"]
= HTTP booting

You can use HTTP booting to boot systems over a network using HTTP.
The term HTTP booting refers to two booting stages: UEFI HTTP Boot and Boot Loader HTTP Boot.

UEFI HTTP booting is the process of fetching the Network Bootstrap Program (NBP) by the UEFI firmware over HTTP(S).
The NBP is typically the boot loader such as GRUB2.

Boot loader HTTP booting is the process of fetching installation files such as kernel and initrd by the boot loader over HTTP(S).

In HTTP boot, files are transferred over HTTP instead of TFTP.
Using this method can help reduce the booting time during host provisioning.
HTTP is also more reliable for the transfer of large files, such as Live images, than TFTP.

You can combine them independently of each other, although your host must meet certain conditions for UEFI HTTP Boot.
Boot loader HTTP Boot stage follows after UEFI HTTP Boot stage.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
With {ProjectName}, you can provision hosts by using the following provisioning methods.

Network based::
You can use this method with hosts that are capable of PXE booting or UEFI HTTP booting.
You can use this method with hosts that are capable of PXE booting.
+
You must configure the necessary network booting services, such as DHCP or TFTP.
When you create a host entry, you select a PXE loader that can configure DHCP options for network booting if {SmartProxy} is set up to configure the DHCP service automatically.
Expand Down
2 changes: 1 addition & 1 deletion guides/common/modules/con_secure-boot.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[id="secure-boot"]
= Secure Boot

When {Project} is installed on {EL} using `{foreman-installer}`, grub2 and shim boot loaders that are signed by Red Hat are deployed into the TFTP and HTTP UEFI Boot directory.
When {Project} is installed on {EL} using `{foreman-installer}`, grub2 and shim boot loaders that are signed by Red Hat are deployed into the TFTP and HTTP Boot directory.
PXE loader options named "SecureBoot" configure hosts to load `shim.efi`.

On Debian and Ubuntu operating systems, the grub2 boot loader is created using the `grub2-mkimage` unsigned.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
:_mod-docs-content-type: CONCEPT

[id="http-booting-requirements-with-managed-dhcp"]
= HTTP booting requirements with managed DHCP
[id="uefi-http-booting-requirements-with-managed-dhcp"]
= UEFI HTTP booting requirements with managed DHCP

To provision machines through HTTP booting ensure that you meet the following requirements:
To provision machines through UEFI HTTP booting ensure that you meet the following requirements:

.Client requirements
For HTTP booting to work, ensure that your environment has the following client-side configurations:
For UEFI HTTP booting to work, ensure that your environment has the following client-side configurations:

* All the network-based firewalls are configured to allow clients on the subnet to access the {SmartProxy}.
* Your host is capable of booting HTTP(S) over its network interface.
* All the network-based firewalls are configured to allow hosts on the subnet to access the {SmartProxy}.
For more information, see xref:networking-considerations-in-{project-context}[].
* Your client has access to the DHCP and DNS servers.
* Your client has access to the HTTP UEFI Boot {SmartProxy}.
* Your host has access to the DHCP and DNS servers.
* Your host has access to the HTTP Boot {SmartProxy}.

.Network requirements
* Optional: If the host and the DHCP server are separated by a router, configure the DHCP relay agent and point to the DHCP server.

.{Project} requirements
Although TFTP protocol is not used for HTTP UEFI Booting, {Project} uses TFTP {SmartProxy} API to deploy boot loader configuration.
Although TFTP protocol is not used for UEFI HTTP Booting, {Project} uses TFTP {SmartProxy} API to deploy the boot loader.

For HTTP booting to work, ensure that {Project} has the following configurations:
For UEFI HTTP booting to work, ensure that {Project} has the following configurations:

* Both {ProjectServer} and {SmartProxy} have DNS configured and are able to resolve provisioned host names.
* The UDP ports 67 and 68 are accessible by the client so that the client can send and receive a DHCP request and offer.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
:_mod-docs-content-type: CONCEPT

[id="http-booting-requirements-with-unmanaged-dhcp"]
= HTTP booting requirements with unmanaged DHCP
[id="uefi-http-booting-requirements-with-unmanaged-dhcp"]
= UEFI HTTP booting requirements with unmanaged DHCP

To provision machines through HTTP booting without managed DHCP ensure that you meet the following requirements:
To provision machines through UEFI HTTP booting without managed DHCP ensure that you meet the following requirements:

.Client requirements
* HTTP UEFI Boot URL must be set to one of:
** `\http://{smartproxy-example-com}:8000`
** `\https://{smartproxy-example-com}:{smartproxy_port}`
* Your client is capable of booting HTTP(S) over its network interface.
* Ensure that your client has access to the DHCP and DNS servers.
* Ensure that your client has access to the HTTP UEFI Boot {SmartProxy}.
* Ensure that your client has access to the HTTP Boot {SmartProxy}.
* Ensure that all the network-based firewalls are configured to allow clients on the subnet to access the {SmartProxy}.
For more information, see xref:networking-considerations-in-{project-context}[].

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ After the operating system has been installed, the host registers to {Project} a
.BIOS and UEFI interfaces
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.
With {Project}, you can perform both BIOS and UEFI based PXE provisioning.
For UEFI interfaces with an HTTP boot client, you can also perform UEFI HTTP provisioning.
For UEFI interfaces with an HTTP boot client, you can also perform UEFI HTTP booting.

.UEFI Secure Boot
{ProjectName} supports host provisioning with UEFI Secure Boot.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
:_mod-docs-content-type: PROCEDURE

[id="configuring-{smart-proxy-context}-for-uefi-http-booting"]
= Configuring {SmartProxy} for UEFI HTTP booting
[id="configuring-{smart-proxy-context}-for-http-booting"]
= Configuring {SmartProxy} for HTTP booting

You can provision hosts from {Project} by using the UEFI HTTP Boot if the hosts have this capability.
Configure your {SmartProxy} for UEFI HTTP booting.
Configure your {SmartProxy} for HTTP booting if you want to use UEFI HTTP Boot, Boot Loader HTTP Boot, or both.

.Prerequisites
* Ensure that your environment meets the requirements for HTTP booting.
Expand Down Expand Up @@ -38,3 +37,4 @@ endif::[]
[role="_additional-resources"]
.Next steps
* xref:creating-hosts-with-uefi-http-boot-provisioning[]
* xref:creating-hosts-with-boot-loader-http-boot-provisioning-by-using-web-ui[]
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
:_mod-docs-content-type: PROCEDURE

[id="creating-hosts-with-boot-loader-http-boot-provisioning-by-using-cli"]
= Creating hosts with Boot Loader HTTP boot provisioning by using CLI

You can provision hosts from {Project} by using the Boot Loader HTTP Boot.

The boot loader of the host fetches the installation files over HTTP(S).

.Prerequisites
* Your {SmartProxy} has been configured for HTTP booting.
For more information, see xref:configuring-{smart-proxy-context}-for-http-booting[].

.Procedure
. Create a host:
+
[options="nowrap" subs="+quotes"]
----
$ hammer host create \
--build true \
--enabled true \
--hostgroup "_My_Host_Group_" \
--location "_My_Location_" \
--mac "_My_MAC_Address_" \
--managed true \
--name "_My_Host_Name_" \
--organization "_My_Organization_" \
--parameters default_grub_install_entry=efi_http \
--pxe-loader "Grub2 UEFI"
----
. Configure the network interface:
+
[options="nowrap" subs="+quotes"]
----
$ hammer host interface update \
--host "_My_Host_Name_" \
--managed true \
--primary true \
--provision true
----
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
:_mod-docs-content-type: PROCEDURE

[id="creating-hosts-with-boot-loader-http-boot-provisioning-by-using-web-ui"]
= Creating hosts with Boot Loader HTTP boot provisioning by using {ProjectWebUI}

You can provision hosts from {Project} by using the Boot Loader HTTP Boot.

The boot loader of the host fetches the installation files over HTTP(S).

.Prerequisites
* Your {SmartProxy} has been configured for HTTP booting.
For more information, see xref:configuring-{smart-proxy-context}-for-http-booting[].

.Procedure
include::snip_steps-create-a-host-tab-host.adoc[]
include::snip_steps-create-a-host-tab-interfaces.adoc[]
. Click the *Operating System* tab, and verify that all fields contain values.
Confirm each aspect of the operating system.
. From the *PXE Loader* list, select *Grub2 UEFI*.
. Click the *Parameters* tab, and then click *Add Parameter*.
. In the *Name* field, enter `default_grub_install_entry`.
. From the *Type* list, select *string*.
. In the *Value* field, enter `efi_http`.
. Optional: Click *Resolve* in *Provisioning template* to check the new host can identify the right provisioning templates to use.
+
For more information about provisioning templates, see xref:provisioning-templates[].
ifdef::katello,satellite,orcharhino[]
include::snip_step-parameter-ak.adoc[]
endif::[]
. Click *Submit* to save the host details.
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,13 @@
= Creating hosts with UEFI HTTP boot provisioning

You can provision hosts from {Project} by using the UEFI HTTP Boot if the hosts have this capability.
In HTTP boot, configuration files are transferred over HTTP instead of TFTP as in PXE boot.
Using this method can help reduce the booting time during host provisioning.
HTTP is also more reliable for transfer of large files, such as Live images, than TFTP.

You enter the host details on {ProjectServer} and boot your host.
{ProjectServer} automatically manages the HTTP boot configuration, organizes networking services, and provides the operating system and configuration for the host.

Create a host entry to add the host details.
When you save the host entry, {Project} creates the relevant provisioning settings.
This also includes creating the necessary directories and files for PXE booting.
When you boot the host, the host requests a DHCP lease.
The DHCP service responds with a lease which includes the location of the installation content.
The host uses the installation content to install the operating system.

ifdef::katello,satellite,orcharhino[]
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.
endif::[]
ifndef::katello,satellite,orcharhino[]
During the installation, the host registers to {ProjectServer} and performs initial configuration.
endif::[]

To use the CLI instead of the {ProjectWebUI}, see the xref:cli-creating-hosts-with-uefi-http-boot-provisioning_{context}[].
The firmware of the host loads the Network Bootstrap Program (NBP) over HTTP(S).

.Prerequisites
* Your {SmartProxy} has been configured for UEFI HTTP booting.
For more information, see xref:configuring-{smart-proxy-context}-for-uefi-http-booting[].
* Your {SmartProxy} has been configured for HTTP booting.
For more information, see xref:configuring-{smart-proxy-context}-for-http-booting[].
* Your firmware of the host is capable of booting HTTP(S) over its network interface.

.Procedure
include::snip_steps-create-a-host-tab-host.adoc[]
Expand Down