diff --git a/guides/common/assembly_provisioning-requirements.adoc b/guides/common/assembly_provisioning-requirements.adoc index 62e04cb193d..23669435551 100644 --- a/guides/common/assembly_provisioning-requirements.adoc +++ b/guides/common/assembly_provisioning-requirements.adoc @@ -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] diff --git a/guides/common/assembly_using-network-boot-to-provision-hosts.adoc b/guides/common/assembly_using-network-boot-to-provision-hosts.adoc index 1f2fe51a452..97eb1f30471 100644 --- a/guides/common/assembly_using-network-boot-to-provision-hosts.adoc +++ b/guides/common/assembly_using-network-boot-to-provision-hosts.adoc @@ -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] diff --git a/guides/common/modules/con_http-booting.adoc b/guides/common/modules/con_http-booting.adoc index 599d3ea30af..2b464c8286b 100644 --- a/guides/common/modules/con_http-booting.adoc +++ b/guides/common/modules/con_http-booting.adoc @@ -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. diff --git a/guides/common/modules/con_provisioning-methods-in-project.adoc b/guides/common/modules/con_provisioning-methods-in-project.adoc index 969df89e918..6595a12377c 100644 --- a/guides/common/modules/con_provisioning-methods-in-project.adoc +++ b/guides/common/modules/con_provisioning-methods-in-project.adoc @@ -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. diff --git a/guides/common/modules/con_secure-boot.adoc b/guides/common/modules/con_secure-boot.adoc index bffb85e22fd..21fb3b3ae67 100644 --- a/guides/common/modules/con_secure-boot.adoc +++ b/guides/common/modules/con_secure-boot.adoc @@ -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. diff --git a/guides/common/modules/con_http-booting-requirements-with-managed-dhcp.adoc b/guides/common/modules/con_uefi-http-booting-requirements-with-managed-dhcp.adoc similarity index 55% rename from guides/common/modules/con_http-booting-requirements-with-managed-dhcp.adoc rename to guides/common/modules/con_uefi-http-booting-requirements-with-managed-dhcp.adoc index ebe956be3cc..bb93022e808 100644 --- a/guides/common/modules/con_http-booting-requirements-with-managed-dhcp.adoc +++ b/guides/common/modules/con_uefi-http-booting-requirements-with-managed-dhcp.adoc @@ -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. diff --git a/guides/common/modules/con_http-booting-requirements-with-unmanaged-dhcp.adoc b/guides/common/modules/con_uefi-http-booting-requirements-with-unmanaged-dhcp.adoc similarity index 76% rename from guides/common/modules/con_http-booting-requirements-with-unmanaged-dhcp.adoc rename to guides/common/modules/con_uefi-http-booting-requirements-with-unmanaged-dhcp.adoc index 6c4945b134c..8691062bb4b 100644 --- a/guides/common/modules/con_http-booting-requirements-with-unmanaged-dhcp.adoc +++ b/guides/common/modules/con_uefi-http-booting-requirements-with-unmanaged-dhcp.adoc @@ -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}[]. diff --git a/guides/common/modules/con_using-network-boot-to-provision-hosts.adoc b/guides/common/modules/con_using-network-boot-to-provision-hosts.adoc index 93fa74b8bd2..6dc2eefc383 100644 --- a/guides/common/modules/con_using-network-boot-to-provision-hosts.adoc +++ b/guides/common/modules/con_using-network-boot-to-provision-hosts.adoc @@ -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. diff --git a/guides/common/modules/proc_configuring-smartproxy-for-uefi-http-booting.adoc b/guides/common/modules/proc_configuring-smart-proxy-for-http-booting.adoc similarity index 80% rename from guides/common/modules/proc_configuring-smartproxy-for-uefi-http-booting.adoc rename to guides/common/modules/proc_configuring-smart-proxy-for-http-booting.adoc index 01aa5316c36..305ec37cd76 100644 --- a/guides/common/modules/proc_configuring-smartproxy-for-uefi-http-booting.adoc +++ b/guides/common/modules/proc_configuring-smart-proxy-for-http-booting.adoc @@ -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. @@ -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[] diff --git a/guides/common/modules/proc_creating-hosts-with-boot-loader-http-boot-provisioning-by-using-cli.adoc b/guides/common/modules/proc_creating-hosts-with-boot-loader-http-boot-provisioning-by-using-cli.adoc new file mode 100644 index 00000000000..483f2885d59 --- /dev/null +++ b/guides/common/modules/proc_creating-hosts-with-boot-loader-http-boot-provisioning-by-using-cli.adoc @@ -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 +---- diff --git a/guides/common/modules/proc_creating-hosts-with-boot-loader-http-boot-provisioning-by-using-web-ui.adoc b/guides/common/modules/proc_creating-hosts-with-boot-loader-http-boot-provisioning-by-using-web-ui.adoc new file mode 100644 index 00000000000..9122a43aa62 --- /dev/null +++ b/guides/common/modules/proc_creating-hosts-with-boot-loader-http-boot-provisioning-by-using-web-ui.adoc @@ -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. diff --git a/guides/common/modules/proc_creating-hosts-with-uefi-http-boot-provisioning.adoc b/guides/common/modules/proc_creating-hosts-with-uefi-http-boot-provisioning.adoc index 27e8efb6ea7..cdc3e3304cb 100644 --- a/guides/common/modules/proc_creating-hosts-with-uefi-http-boot-provisioning.adoc +++ b/guides/common/modules/proc_creating-hosts-with-uefi-http-boot-provisioning.adoc @@ -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[]