From 401bd236bfae8a2f69f8f8f9c7806a019f986a00 Mon Sep 17 00:00:00 2001 From: dfitzmau Date: Mon, 15 Dec 2025 11:02:47 +0000 Subject: [PATCH] OSDOCS-17013-bm-upi-2: Continuation of the CQA2 for installing-bare-metal.adoc --- ...ing-bare-metal-network-customizations.adoc | 22 ++ .../upi/installing-bare-metal.adoc | 22 ++ ...alling-restricted-networks-bare-metal.adoc | 22 ++ ...installing-with-agent-based-installer.adoc | 4 +- ...ion-user-infra-machines-advanced-disk.adoc | 158 ++++++++ ...user-infra-machines-advanced-ignition.adoc | 34 ++ ...-user-infra-machines-advanced-network.adoc | 69 ++++ ...r-infra-machines-advanced-retain-disk.adoc | 113 ++++++ ...allation-user-infra-machines-advanced.adoc | 349 +----------------- .../installation-user-infra-machines-iso.adoc | 20 +- .../installation-user-infra-machines-pxe.adoc | 69 ++-- 11 files changed, 483 insertions(+), 399 deletions(-) create mode 100644 modules/installation-user-infra-machines-advanced-disk.adoc create mode 100644 modules/installation-user-infra-machines-advanced-ignition.adoc create mode 100644 modules/installation-user-infra-machines-advanced-network.adoc create mode 100644 modules/installation-user-infra-machines-advanced-retain-disk.adoc diff --git a/installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc b/installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc index a9e9ce0bde..b99bb78a4f 100644 --- a/installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc +++ b/installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc @@ -1,3 +1,7 @@ +ifeval::["{context}" == "installing-with-agent-based-installer"] +:agent: +endif::[] + :_mod-docs-content-type: ASSEMBLY [id="installing-bare-metal-network-customizations"] = Installing a user-provisioned bare metal cluster with network customizations @@ -152,6 +156,20 @@ include::modules/installation-user-infra-machines-pxe.adoc[leveloffset=+2] include::modules/installation-user-infra-machines-advanced.adoc[leveloffset=+2] +include::modules/installation-user-infra-machines-advanced-network.adoc[leveloffset=+3] + +include::modules/installation-user-infra-machines-advanced-disk.adoc[leveloffset=+3] + +include::modules/installation-user-infra-machines-advanced-retain-disk.adoc[leveloffset=+3] + +include::modules/installation-user-infra-machines-advanced-ignition.adoc[leveloffset=+3] + +[role="_additional-resources"] +.Additional resources + +* link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#getting-started-with-nmcli_configuring-and-managing-networking[Getting started with nmcli] +* link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#getting-started-with-nmtui_configuring-and-managing-networking[Getting started with nmtui] + include::modules/installation-user-infra-machines-advanced-console-configuration.adoc[leveloffset=+3] include::modules/installation-user-infra-machines-advanced-enabling-serial-console.adoc[leveloffset=+3] @@ -244,3 +262,7 @@ include::modules/cluster-telemetry.adoc[leveloffset=+1] * If necessary, you can xref:../../../support/remote_health_monitoring/remote-health-reporting.adoc#remote-health-reporting[Remote health reporting]. * xref:../../../registry/configuring_registry_storage/configuring-registry-storage-baremetal.adoc#configuring-registry-storage-baremetal[Set up your registry and configure registry storage]. + +ifeval::["{context}" == "installing-with-agent-based-installer"] +:!agent: +endif::[] diff --git a/installing/installing_bare_metal/upi/installing-bare-metal.adoc b/installing/installing_bare_metal/upi/installing-bare-metal.adoc index 0b333dd413..968d56c2cd 100644 --- a/installing/installing_bare_metal/upi/installing-bare-metal.adoc +++ b/installing/installing_bare_metal/upi/installing-bare-metal.adoc @@ -1,3 +1,7 @@ +ifeval::["{context}" == "installing-with-agent-based-installer"] +:agent: +endif::[] + :_mod-docs-content-type: ASSEMBLY [id="installing-bare-metal"] = Installing a user-provisioned cluster on bare metal @@ -171,6 +175,20 @@ include::modules/installation-user-infra-machines-pxe.adoc[leveloffset=+2] include::modules/installation-user-infra-machines-advanced.adoc[leveloffset=+2] +include::modules/installation-user-infra-machines-advanced-network.adoc[leveloffset=+3] + +include::modules/installation-user-infra-machines-advanced-disk.adoc[leveloffset=+3] + +include::modules/installation-user-infra-machines-advanced-retain-disk.adoc[leveloffset=+3] + +include::modules/installation-user-infra-machines-advanced-ignition.adoc[leveloffset=+3] + +[role="_additional-resources"] +.Additional resources + +* link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#getting-started-with-nmcli_configuring-and-managing-networking[Getting started with nmcli] +* link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#getting-started-with-nmtui_configuring-and-managing-networking[Getting started with nmtui] + include::modules/installation-user-infra-machines-advanced-console-configuration.adoc[leveloffset=+3] include::modules/installation-user-infra-machines-advanced-enabling-serial-console.adoc[leveloffset=+3] @@ -271,3 +289,7 @@ include::modules/cluster-telemetry.adoc[leveloffset=+1] * xref:../../../post_installation_configuration/cluster-tasks.adoc#available_cluster_customizations[Customize your cluster]. * xref:../../../support/remote_health_monitoring/remote-health-reporting.adoc#remote-health-reporting[Remote health reporting] * xref:../../../registry/configuring_registry_storage/configuring-registry-storage-baremetal.adoc#configuring-registry-storage-baremetal[Set up your registry and configure registry storage] + +ifeval::["{context}" == "installing-with-agent-based-installer"] +:!agent: +endif::[] diff --git a/installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc b/installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc index 0e4d27a350..7cfd478983 100644 --- a/installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc +++ b/installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc @@ -1,3 +1,7 @@ +ifeval::["{context}" == "installing-with-agent-based-installer"] +:agent: +endif::[] + :_mod-docs-content-type: ASSEMBLY [id="installing-restricted-networks-bare-metal"] = Installing a user-provisioned bare metal cluster on a disconnected environment @@ -165,6 +169,20 @@ include::modules/installation-user-infra-machines-pxe.adoc[leveloffset=+2] include::modules/installation-user-infra-machines-advanced.adoc[leveloffset=+2] +include::modules/installation-user-infra-machines-advanced-network.adoc[leveloffset=+3] + +include::modules/installation-user-infra-machines-advanced-disk.adoc[leveloffset=+3] + +include::modules/installation-user-infra-machines-advanced-retain-disk.adoc[leveloffset=+3] + +include::modules/installation-user-infra-machines-advanced-ignition.adoc[leveloffset=+3] + +[role="_additional-resources"] +.Additional resources + +* link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#getting-started-with-nmcli_configuring-and-managing-networking[Getting started with nmcli] +* link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#getting-started-with-nmtui_configuring-and-managing-networking[Getting started with nmtui] + include::modules/installation-user-infra-machines-advanced-console-configuration.adoc[leveloffset=+3] include::modules/installation-user-infra-machines-advanced-enabling-serial-console.adoc[leveloffset=+3] @@ -266,3 +284,7 @@ include::modules/cluster-telemetry.adoc[leveloffset=+1] * If necessary, you can xref:../../../support/remote_health_monitoring/remote-health-reporting.adoc#remote-health-reporting[Remote health reporting]. * If necessary, see xref:../../../support/remote_health_monitoring/remote-health-reporting.adoc#insights-operator-register-disconnected-cluster_remote-health-reporting[Registering your disconnected cluster] + +ifeval::["{context}" == "installing-with-agent-based-installer"] +:!agent: +endif::[] diff --git a/installing/installing_with_agent_based_installer/installing-with-agent-based-installer.adoc b/installing/installing_with_agent_based_installer/installing-with-agent-based-installer.adoc index 95435cc750..df926ecf9a 100644 --- a/installing/installing_with_agent_based_installer/installing-with-agent-based-installer.adoc +++ b/installing/installing_with_agent_based_installer/installing-with-agent-based-installer.adoc @@ -52,8 +52,8 @@ include::modules/installing-ocp-agent-manifest-folder.adoc[leveloffset=+3] .Additional resources * xref:../../machine_configuration/machine-configs-configure.adoc#machine-configs-configure[Using MachineConfig objects to configure nodes] -// Partitioning the disk -include::modules/installation-user-infra-machines-advanced.adoc[leveloffset=+3] +// Disk partitioning +include::modules/installation-user-infra-machines-advanced-disk.adoc[leveloffset=+3] // Using ZTP manifests include::modules/installing-ocp-agent-ZTP.adoc[leveloffset=+2] diff --git a/modules/installation-user-infra-machines-advanced-disk.adoc b/modules/installation-user-infra-machines-advanced-disk.adoc new file mode 100644 index 0000000000..a62c5e730a --- /dev/null +++ b/modules/installation-user-infra-machines-advanced-disk.adoc @@ -0,0 +1,158 @@ +// Module included in the following assemblies: +// +// * installing/installing_bare_metal/upi/installing-bare-metal.adoc +// * installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc +// * installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc +// * installing/installing_with_agent_based_installer/installing-with-agent-based-installer.adoc + +ifeval::["{context}" == "installing-with-agent-based-installer"] +:agent: +endif::[] +ifeval::["{context}" == "installing-restricted-networks-bare-metal"] +:restricted: +endif::[] + +:_mod-docs-content-type: PROCEDURE +[id="installation-user-infra-machines-advanced-disk_{context}"] += Disk partitioning + +ifndef::agent[] +[role="_abstract"] +Disk partitions are created on {product-title} cluster nodes during the {op-system-first} installation. Each {op-system} node of a particular architecture uses the same partition layout, unless you override the default partitioning configuration. During the {op-system} installation, the size of the root file system is increased to use any remaining available space on the target device. + +[IMPORTANT] +==== +The use of a custom partition scheme on your node might result in {product-title} not monitoring or alerting on some node partitions. For more information on monitoring host file systems when using custom partitioning, see link:https://access.redhat.com/articles/4766521[Understanding OpenShift File System Monitoring (eviction conditions)]. +==== + +{product-title} monitors the following two filesystem identifiers: + +* `nodefs`, which is the filesystem that contains `/var/lib/kubelet`. +* `imagefs`, which is the filesystem that contains `/var/lib/containers`. + +For the default partition scheme, `nodefs` and `imagefs` monitor the same root filesystem, `/`. + +To override the default partitioning when installing {op-system} on an {product-title} cluster node, you must create separate partitions. Consider a situation where you want to add a separate storage partition for your containers and container images. For example, by mounting `/var/lib/containers` in a separate partition, the kubelet separately monitors `/var/lib/containers` as the `imagefs` directory and the root file system as the `nodefs` directory. + +[IMPORTANT] +==== +If you have resized your disk size to host a larger file system, consider creating a separate `/var/lib/containers` partition. Consider resizing a disk that has an `xfs` format to reduce CPU time issues caused by a high number of allocation groups. +==== +endif::agent[] +ifdef::agent[] +[role="_abstract"] +In general, you must use the default disk partitioning that is created during the {op-system} installation. However, there are cases where you might want to create a separate partition for a directory that you expect to grow. +endif::agent[] + +{product-title} supports the addition of a single partition to attach storage to either the `/var` directory or a subdirectory of `/var`. For example: + +* `/var/lib/containers`: Holds container-related content that can grow +as more images and containers are added to a system. +* `/var/lib/etcd`: Holds data that you might want to keep separate for purposes such as performance optimization of etcd storage. +* `/var`: Holds data that you might want to keep separate for purposes such as auditing. ++ +[IMPORTANT] +==== +For disk sizes larger than 100GB, and especially larger than 1TB, create a separate `/var` partition. +==== + +Storing the contents of a `/var` directory separately makes it easier to grow storage for those areas as needed and reinstall {product-title} at a later date so to keep that data intact. This method eliminates the need to re-pull containers or copy large log files during system updates. + +The use of a separate partition for the `/var` directory or a subdirectory of `/var` also prevents data growth in the partitioned directory from filling up the root file system. + +The following procedure sets up a separate `/var` partition by adding a machine config manifest that is wrapped into the Ignition config file for a node type during the preparation phase of an installation. + +ifdef::agent[] +.Prerequisites +* You have created an `openshift` subdirectory within your installation directory. +endif::agent[] + +.Procedure + +ifndef::agent[] +. On your installation host, change to the directory that contains the {product-title} installation program and generate the Kubernetes manifests for the cluster: ++ +[source,terminal] +---- +$ openshift-install create manifests --dir +---- +endif::agent[] + +. Create a Butane config that configures the additional partition. For example, name the file `$HOME/clusterconfig/98-var-partition.bu`, change the disk device name to the name of the storage device on the `worker` systems, and set the storage size as appropriate. This example places the `/var` directory on a separate partition: ++ +[source,yaml,subs="attributes+"] +---- +variant: openshift +version: {product-version}.0 +metadata: + labels: + machineconfiguration.openshift.io/role: worker + name: 98-var-partition +storage: + disks: + - device: /dev/disk/by-id/ + partitions: + - label: var + start_mib: + size_mib: + number: 5 + filesystems: + - device: /dev/disk/by-partlabel/var + path: /var + format: xfs + mount_options: [defaults, prjquota] + with_mount_unit: true +---- ++ +where: ++ +``:: Specifies the storage device name of the disk that you want to partition. +``:: Specifies the minimum offset value for the boot disk. For best performance, specify a minimum offset value of 25000 mebibytes. The root file system is automatically resized to fill all available space up to the specified offset. If no offset value is specified, or if the specified value is smaller than the recommended minimum, the resulting root file system will be too small, and future reinstalls of {op-system} might overwrite the beginning of the data partition. +``:: Specifies the size of the data partition in mebibytes. +`mount_options`:: The `prjquota` mount option must be enabled for filesystems used for container storage. ++ +[NOTE] +==== +When creating a separate `/var` partition, you cannot use different instance types for compute nodes, if the different instance types do not have the same device name. +==== + +. Create a manifest from the Butane config and save it to the `clusterconfig/openshift` directory. For example, run the following command: ++ +[source,terminal] +---- +$ butane $HOME/clusterconfig/98-var-partition.bu -o $HOME/clusterconfig/openshift/98-var-partition.yaml +---- + +ifndef::agent[] +. Create the Ignition config files by running the following command: ++ +[source,terminal] +---- +$ openshift-install create ignition-configs --dir +---- +* ``: Specify the name installation directory. ++ +Ignition config files are created for the bootstrap, control plane, and compute nodes in the installation directory: ++ +---- +. +├── auth +│ ├── kubeadmin-password +│ └── kubeconfig +├── bootstrap.ign +├── master.ign +├── metadata.json +└── worker.ign +---- ++ +The files in the `/manifest` and `/openshift` directories are wrapped into the Ignition config files, including the file that contains the `98-var-partition` custom `MachineConfig` object. + +. Optional: You can apply the custom disk partitioning by referencing the Ignition config files during the {op-system} installations. +endif::agent[] + +ifeval::["{context}" == "installing-with-agent-based-installer"] +:!agent: +endif::[] +ifeval::["{context}" == "installing-restricted-networks-bare-metal"] +:!restricted: +endif::[] \ No newline at end of file diff --git a/modules/installation-user-infra-machines-advanced-ignition.adoc b/modules/installation-user-infra-machines-advanced-ignition.adoc new file mode 100644 index 0000000000..c09fe12960 --- /dev/null +++ b/modules/installation-user-infra-machines-advanced-ignition.adoc @@ -0,0 +1,34 @@ +// Module included in the following assemblies: +// +// * installing/installing_bare_metal/upi/installing-bare-metal.adoc +// * installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc +// * installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc +// * installing/installing_with_agent_based_installer/installing-with-agent-based-installer.adoc + +ifeval::["{context}" == "installing-restricted-networks-bare-metal"] +:restricted: +endif::[] + +:_mod-docs-content-type: REFERENCE +[id="installation-user-infra-machines-advanced-ignition_{context}"] += Identifying Ignition configs + +[role="_abstract"] +When doing an {op-system} manual installation, there are two types of Ignition configs that you can provide, with different reasons for providing each one: + +* **Permanent install Ignition config**: Every manual {op-system} installation needs to pass one of the Ignition config files generated by `openshift-installer`, such as `bootstrap.ign`, `master.ign` and `worker.ign`, to carry out the installation. + +[IMPORTANT] +==== +It is not recommended to modify these Ignition config files directly. You can update the manifest files that are wrapped into the Ignition config files, as outlined in examples in the preceding sections. +==== + +For PXE installations, you can pass the Ignition configs on the `APPEND` line using the `coreos.inst.ignition_url=` option. For ISO installations, after the ISO boots to the shell prompt, you must identify the Ignition config on the `coreos-installer` command line with the `--ignition-url=` option. In both cases, only HTTP and HTTPS protocols are supported. + +* **Live install Ignition config**: This type can be created by using the `coreos-installer` `customize` subcommand of `coreos-installer` and its various options. With this method, the Ignition config passes to the live install medium, runs immediately upon booting, and performs setup tasks before or after the {op-system} system installs to disk. This method must be only used for performing tasks that must be done once and not applied again later, such as with advanced partitioning that cannot be done using a machine config. + +For PXE or ISO boots, you can create the Ignition config and `APPEND` the `ignition.config.url=` option to identify the location of the Ignition config. You also need to append `ignition.firstboot ignition.platform.id=metal` else the `ignition.config.url` option is ignored. + +ifeval::["{context}" == "installing-restricted-networks-bare-metal"] +:!restricted: +endif::[] \ No newline at end of file diff --git a/modules/installation-user-infra-machines-advanced-network.adoc b/modules/installation-user-infra-machines-advanced-network.adoc new file mode 100644 index 0000000000..a4daba6c36 --- /dev/null +++ b/modules/installation-user-infra-machines-advanced-network.adoc @@ -0,0 +1,69 @@ +// Module included in the following assemblies: +// +// * installing/installing_bare_metal/upi/installing-bare-metal.adoc +// * installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc +// * installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc +// * installing/installing_with_agent_based_installer/installing-with-agent-based-installer.adoc + +ifeval::["{context}" == "installing-restricted-networks-bare-metal"] +:restricted: +endif::[] + +:_mod-docs-content-type: PROCEDURE +[id="installation-user-infra-machines-advanced_network_{context}"] += Using advanced networking options for PXE and ISO installations + +[role="_abstract"] +Networking for {product-title} nodes uses DHCP by default to gather all necessary configuration settings. + +To set up static IP addresses or configure special settings, such as bonding, you can do one of the following: + +* Pass special kernel parameters when you boot the live installer. + +* Use a machine config to copy networking files to the installed system. + +* Configure networking from a live installer shell prompt, then copy those settings to the installed system so that they take effect when the installed system first boots. + +To configure a PXE or iPXE installation, use one of the following options: + +* See the "Advanced RHCOS installation reference" tables. + +* Use a machine config to copy networking files to the installed system. + +To configure an ISO installation, use the following procedure. + +.Procedure + +. Boot the ISO installer. + +. From the live system shell prompt, configure networking for the live system by using available RHEL tools, such as `nmcli` or `nmtui`. + +. Run the `coreos-installer` command to install the system, adding the `--copy-network` option to copy networking configuration. For example: ++ +ifndef::restricted[] +[source,terminal] +---- +$ sudo coreos-installer install --copy-network \ + --ignition-url=http://host/worker.ign /dev/disk/by-id/scsi- +---- +endif::[] +ifdef::restricted[] +[source,terminal] +---- +$ sudo coreos-installer install --copy-network \ +--ignition-url=http://host/worker.ign \ +--offline \ +/dev/disk/by-id/scsi- +---- +endif::[] ++ +[IMPORTANT] +==== +The `--copy-network` option only copies networking configuration found under `/etc/NetworkManager/system-connections`. In particular, it does not copy the system hostname. +==== + +. Reboot into the installed system. + +ifeval::["{context}" == "installing-restricted-networks-bare-metal"] +:!restricted: +endif::[] diff --git a/modules/installation-user-infra-machines-advanced-retain-disk.adoc b/modules/installation-user-infra-machines-advanced-retain-disk.adoc new file mode 100644 index 0000000000..adb2da6d4e --- /dev/null +++ b/modules/installation-user-infra-machines-advanced-retain-disk.adoc @@ -0,0 +1,113 @@ +// Module included in the following assemblies: +// +// * installing/installing_bare_metal/upi/installing-bare-metal.adoc +// * installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc +// * installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc +// * installing/installing_with_agent_based_installer/installing-with-agent-based-installer.adoc + +ifeval::["{context}" == "installing-restricted-networks-bare-metal"] +:restricted: +endif::[] + +:_mod-docs-content-type: REFERENCE +[id="installation-user-infra-machines-advanced-retain-disk_{context}"] += Examples of retaining existing partitions + +[role="_abstract"] +For an ISO installation, you can add options to the `coreos-installer` command that causes the installation program to maintain one or more existing partitions. For a PXE installation, you can add `coreos.inst.*` options to the `APPEND` parameter to preserve partitions. + +Saved partitions might be data partitions from an existing {product-title} system. You can identify the disk partitions you want to keep either by partition label or by number. + +[NOTE] +==== +If you save existing partitions, and those partitions do not leave enough space for {op-system}, the installation fails without damaging the saved partitions. +==== + +The following examples preserves any existing partition during an ISO installation in which the partition label begins with `data` (`data*`): + +ifndef::restricted[] +[source,terminal] +---- +# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ +--save-partlabel 'data*' \ +/dev/disk/by-id/scsi- +---- +endif::[] + +ifdef::restricted[] +[source,terminal] +---- +# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ +--save-partlabel 'data*' \ +--offline \ +/dev/disk/by-id/scsi- +---- +endif::[] + +The following example runs the `coreos-installer` in a way that preserves +the sixth (6) partition on the disk: + +ifndef::restricted[] +[source,terminal] +---- +# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ +--save-partindex 6 /dev/disk/by-id/scsi- +---- +endif::[] + +ifdef::restricted[] +[source,terminal] +---- +# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ +--save-partindex 6 \ +--offline \ +/dev/disk/by-id/scsi- +---- +endif::[] + +The following example preserves partitions 5 and higher: + +ifndef::restricted[] +[source,terminal] +---- +# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ +--save-partindex 5- /dev/disk/by-id/scsi- +---- +endif::[] + +ifdef::restricted[] +[source,terminal] +---- +# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ +--save-partindex 5- \ +--offline \ +/dev/disk/by-id/scsi- +---- +endif::[] + +In the earlier examples where partition saving is used, `coreos-installer` recreates the partition immediately. + +The following examples preserve existing partitions during a PXE installation. The following `APPEND` option preserves any partition in which the partition label begins with 'data' ('data*'). + +[source,terminal] +---- +coreos.inst.save_partlabel=data* +---- + +The following `APPEND` option preserves partitions 5 and higher: + +[source,terminal] +---- +coreos.inst.save_partindex=5- +---- + +The following `APPEND` option preserves partition 6: + +[source,terminal] +---- +coreos.inst.save_partindex=6 +---- + +ifeval::["{context}" == "installing-restricted-networks-bare-metal"] +:!restricted: +endif::[] \ No newline at end of file diff --git a/modules/installation-user-infra-machines-advanced.adoc b/modules/installation-user-infra-machines-advanced.adoc index 25ef3375d5..5b2b914542 100644 --- a/modules/installation-user-infra-machines-advanced.adoc +++ b/modules/installation-user-infra-machines-advanced.adoc @@ -5,364 +5,23 @@ // * installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc // * installing/installing_with_agent_based_installer/installing-with-agent-based-installer.adoc -ifeval::["{context}" == "installing-with-agent-based-installer"] -:agent: -endif::[] ifeval::["{context}" == "installing-restricted-networks-bare-metal"] :restricted: endif::[] -:_mod-docs-content-type: PROCEDURE -ifndef::agent[] +:_mod-docs-content-type: CONCEPT [id="installation-user-infra-machines-advanced_{context}"] = Advanced {op-system} installation configuration -A key benefit for manually provisioning the {op-system-first} -nodes for {product-title} is to be able to do configuration that is not -available through default {product-title} installation methods. -This section describes some of the configurations that you can do using -techniques that include: +[role="_abstract"] +A key benefit for manually provisioning the {op-system-first} nodes for {product-title} is to be able to do configuration that is not available through default {product-title} installation methods. This section describes some of the configurations that you can do using techniques that include: * Passing kernel arguments to the live installer * Running `coreos-installer` manually from the live system * Customizing a live ISO or PXE boot image -The advanced configuration topics for manual {op-system-first} -installations detailed in this section relate to disk partitioning, networking, and using Ignition configs in different ways. +The advanced configuration topics for manual {op-system-first} installations detailed in this section relate to disk partitioning, networking, and using Ignition configs in different ways. -[id="installation-user-infra-machines-advanced_network_{context}"] -== Using advanced networking options for PXE and ISO installations -Networking for {product-title} nodes uses DHCP by default to gather all -necessary configuration settings. To set up static IP addresses or configure special settings, such as bonding, you can do one of the following: - -* Pass special kernel parameters when you boot the live installer. - -* Use a machine config to copy networking files to the installed system. - -* Configure networking from a live installer shell prompt, then copy those settings to the installed system so that they take effect when the installed system first boots. - -To configure a PXE or iPXE installation, use one of the following options: - -* See the "Advanced RHCOS installation reference" tables. -* Use a machine config to copy networking files to the installed system. - -To configure an ISO installation, use the following procedure. - -.Procedure - -. Boot the ISO installer. - -. From the live system shell prompt, configure networking for the live system using available RHEL tools, such as `nmcli` or `nmtui`. - -. Run the `coreos-installer` command to install the system, adding the `--copy-network` option to copy networking configuration. For example: -+ -ifndef::restricted[] -[source,terminal] ----- -$ sudo coreos-installer install --copy-network \ - --ignition-url=http://host/worker.ign /dev/disk/by-id/scsi- ----- -endif::[] -ifdef::restricted[] -+ -[source,terminal] ----- -$ sudo coreos-installer install --copy-network \ ---ignition-url=http://host/worker.ign \ ---offline \ -/dev/disk/by-id/scsi- ----- -endif::[] -+ -[IMPORTANT] -==== -The `--copy-network` option only copies networking configuration found under `/etc/NetworkManager/system-connections`. In particular, it does not copy the system hostname. -==== - -. Reboot into the installed system. - -[role="_additional-resources"] -.Additional resources - -* See link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#getting-started-with-nmcli_configuring-and-managing-networking[Getting started with nmcli] and link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#getting-started-with-nmtui_configuring-and-managing-networking[Getting started with nmtui] in the {op-system-base} 8 documentation for more information about the `nmcli` and `nmtui` tools. - -[id="installation-user-infra-machines-advanced_disk_{context}"] -== Disk partitioning - -Disk partitions are created on {product-title} cluster nodes during the {op-system-first} installation. Each {op-system} node of a particular architecture uses the same partition layout, unless you override the default partitioning configuration. During the {op-system} installation, the size of the root file system is increased to use any remaining available space on the target device. - -[IMPORTANT] -==== -The use of a custom partition scheme on your node might result in {product-title} not monitoring or alerting on some node partitions. If you override the default partitioning, see link:https://access.redhat.com/articles/4766521[Understanding OpenShift File System Monitoring (eviction conditions)] for more information about how {product-title} monitors your host file systems. -==== - -{product-title} monitors the following two filesystem identifiers: - -* `nodefs`, which is the filesystem that contains `/var/lib/kubelet` -* `imagefs`, which is the filesystem that contains `/var/lib/containers` - -For the default partition scheme, `nodefs` and `imagefs` monitor the same root filesystem, `/`. - -To override the default partitioning when installing {op-system} on an {product-title} cluster node, you must create separate partitions. Consider a situation where you want to add a separate storage partition for your containers and container images. For example, by mounting `/var/lib/containers` in a separate partition, the kubelet separately monitors `/var/lib/containers` as the `imagefs` directory and the root file system as the `nodefs` directory. - -[IMPORTANT] -==== -If you have resized your disk size to host a larger file system, consider creating a separate `/var/lib/containers` partition. Consider resizing a disk that has an `xfs` format to reduce CPU time issues caused by a high number of allocation groups. -==== - -[id="installation-user-infra-machines-advanced_vardisk_{context}"] -=== Creating a separate `/var` partition -endif::agent[] - -ifdef::agent[] -[id="installing-ocp-agent-disk-partition_{context}"] -= Disk partitioning - -endif::agent[] - -In general, you should use the default disk partitioning that is created during the {op-system} installation. However, there are cases where you might want to create a separate partition for a directory that you expect to grow. - -{product-title} supports the addition of a single partition to attach -storage to either the `/var` directory or a subdirectory of `/var`. -For example: - -* `/var/lib/containers`: Holds container-related content that can grow -as more images and containers are added to a system. -* `/var/lib/etcd`: Holds data that you might want to keep separate for purposes such as performance optimization of etcd storage. -* `/var`: Holds data that you might want to keep separate for purposes such as auditing. -+ -[IMPORTANT] -==== -For disk sizes larger than 100GB, and especially larger than 1TB, create a separate `/var` partition. -==== - -Storing the contents of a `/var` directory separately makes it easier to grow storage for those areas as needed and reinstall {product-title} at a later date and keep that data intact. With this method, you will not have to pull all your containers again, nor will you have to copy massive log files when you update systems. - -The use of a separate partition for the `/var` directory or a subdirectory of `/var` also prevents data growth in the partitioned directory from filling up the root file system. - -The following procedure sets up a separate `/var` partition by adding a machine config manifest that is wrapped into the Ignition config file for a node type during the preparation phase of an installation. - -ifdef::agent[] -.Prerequisites -* You have created an `openshift` subdirectory within your installation directory. -endif::agent[] - -.Procedure - -ifndef::agent[] -. On your installation host, change to the directory that contains the {product-title} installation program and generate the Kubernetes manifests for the cluster: -+ -[source,terminal] ----- -$ openshift-install create manifests --dir ----- -endif::agent[] - -. Create a Butane config that configures the additional partition. For example, name the file `$HOME/clusterconfig/98-var-partition.bu`, change the disk device name to the name of the storage device on the `worker` systems, and set the storage size as appropriate. This example places the `/var` directory on a separate partition: -+ -[source,yaml,subs="attributes+"] ----- -variant: openshift -version: {product-version}.0 -metadata: - labels: - machineconfiguration.openshift.io/role: worker - name: 98-var-partition -storage: - disks: - - device: /dev/disk/by-id/ <1> - partitions: - - label: var - start_mib: <2> - size_mib: <3> - number: 5 - filesystems: - - device: /dev/disk/by-partlabel/var - path: /var - format: xfs - mount_options: [defaults, prjquota] <4> - with_mount_unit: true ----- -+ -<1> The storage device name of the disk that you want to partition. -<2> When adding a data partition to the boot disk, a minimum offset value of 25000 mebibytes is recommended. The root file system is automatically resized to fill all available space up to the specified offset. If no offset value is specified, or if the specified value is smaller than the recommended minimum, the resulting root file system will be too small, and future reinstalls of {op-system} might overwrite the beginning of the data partition. -<3> The size of the data partition in mebibytes. -<4> The `prjquota` mount option must be enabled for filesystems used for container storage. -+ -[NOTE] -==== -When creating a separate `/var` partition, you cannot use different instance types for compute nodes, if the different instance types do not have the same device name. -==== - -. Create a manifest from the Butane config and save it to the `clusterconfig/openshift` directory. For example, run the following command: -+ -[source,terminal] ----- -$ butane $HOME/clusterconfig/98-var-partition.bu -o $HOME/clusterconfig/openshift/98-var-partition.yaml ----- - -ifndef::agent[] -. Create the Ignition config files: -+ -[source,terminal] ----- -$ openshift-install create ignition-configs --dir <1> ----- -<1> For ``, specify the same installation directory. -+ -Ignition config files are created for the bootstrap, control plane, and compute nodes in the installation directory: -+ ----- -. -├── auth -│ ├── kubeadmin-password -│ └── kubeconfig -├── bootstrap.ign -├── master.ign -├── metadata.json -└── worker.ign ----- -+ -The files in the `/manifest` and `/openshift` directories are wrapped into the Ignition config files, including the file that contains the `98-var-partition` custom `MachineConfig` object. - -.Next steps - -* You can apply the custom disk partitioning by referencing the Ignition config files during the {op-system} installations. - -[id="installation-user-infra-machines-advanced_retaindisk_{context}"] -=== Retaining existing partitions - -For an ISO installation, you can add options to the `coreos-installer` command -that cause the installer to maintain one or more existing partitions. -For a PXE installation, you can add `coreos.inst.*` options to the `APPEND` parameter to preserve partitions. - -Saved partitions might be data partitions from an existing {product-title} system. You can identify the disk partitions you want to keep either by partition label or by number. - -[NOTE] -==== -If you save existing partitions, and those partitions do not leave enough space for {op-system}, the installation will fail without damaging the saved partitions. -==== - -.Retaining existing partitions during an ISO installation - -This example preserves any partition in which the partition label begins with `data` (`data*`): - -ifndef::restricted[] -[source,terminal] ----- -# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ ---save-partlabel 'data*' \ -/dev/disk/by-id/scsi- ----- -endif::[] - -ifdef::restricted[] -[source,terminal] ----- -# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ ---save-partlabel 'data*' \ ---offline \ -/dev/disk/by-id/scsi- ----- -endif::[] - -The following example illustrates running the `coreos-installer` in a way that preserves -the sixth (6) partition on the disk: - -ifndef::restricted[] -[source,terminal] ----- -# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ ---save-partindex 6 /dev/disk/by-id/scsi- ----- -endif::[] - -ifdef::restricted[] -[source,terminal] ----- -# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ ---save-partindex 6 \ ---offline \ -/dev/disk/by-id/scsi- ----- -endif::[] - -This example preserves partitions 5 and higher: - -ifndef::restricted[] -[source,terminal] ----- -# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ ---save-partindex 5- /dev/disk/by-id/scsi- ----- -endif::[] - -ifdef::restricted[] -[source,terminal] ----- -# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ ---save-partindex 5- \ ---offline \ -/dev/disk/by-id/scsi- ----- -endif::[] - -In the previous examples where partition saving is used, `coreos-installer` recreates the partition immediately. - -.Retaining existing partitions during a PXE installation - -This `APPEND` option preserves any partition in which the partition label begins with 'data' ('data*'): - -[source,terminal] ----- -coreos.inst.save_partlabel=data* ----- - -This `APPEND` option preserves partitions 5 and higher: - -[source,terminal] ----- -coreos.inst.save_partindex=5- ----- - -This `APPEND` option preserves partition 6: - -[source,terminal] ----- -coreos.inst.save_partindex=6 ----- - -[id="installation-user-infra-machines-advanced_ignition_{context}"] -== Identifying Ignition configs -When doing an {op-system} manual installation, there are two types of Ignition configs that you can provide, with different reasons for providing each one: - -* **Permanent install Ignition config**: Every manual {op-system} installation -needs to pass one of the Ignition config files generated by `openshift-installer`, -such as `bootstrap.ign`, `master.ign` and `worker.ign`, to carry out the -installation. - -[IMPORTANT] -==== -It is not recommended to modify these Ignition config files directly. You can update the manifest files that are wrapped into the Ignition config files, as outlined in examples in the preceding sections. -==== - -For PXE installations, you pass the Ignition configs on the `APPEND` line using the -`coreos.inst.ignition_url=` option. For ISO installations, after the ISO boots to -the shell prompt, you identify the Ignition config on the `coreos-installer` -command line with the `--ignition-url=` option. In both cases, only HTTP and HTTPS -protocols are supported. - -* **Live install Ignition config**: This type can be created by using the `coreos-installer` `customize` subcommand and its various options. With this method, the Ignition config passes to the live install medium, runs immediately upon booting, and performs setup tasks before or after the {op-system} system installs to disk. This method should only be used for performing tasks that must be done once and not applied again later, such as with advanced partitioning that cannot be done using a machine config. - -For PXE or ISO boots, you can create the Ignition config -and `APPEND` the `ignition.config.url=` option to identify the location of -the Ignition config. You also need to append `ignition.firstboot ignition.platform.id=metal` -or the `ignition.config.url` option will be ignored. -endif::agent[] - -ifeval::["{context}" == "installing-with-agent-based-installer"] -:!agent: -endif::[] ifeval::["{context}" == "installing-restricted-networks-bare-metal"] :!restricted: endif::[] \ No newline at end of file diff --git a/modules/installation-user-infra-machines-iso.adoc b/modules/installation-user-infra-machines-iso.adoc index 7c96d47156..0376da2acf 100644 --- a/modules/installation-user-infra-machines-iso.adoc +++ b/modules/installation-user-infra-machines-iso.adoc @@ -52,8 +52,9 @@ You can add or change configuration settings in your Ignition configs before sav + [source,terminal] ---- -$ curl -k http:///bootstrap.ign <1> +$ curl -k http:///bootstrap.ign ---- +* : Replace `bootstrap.ign` with `master.ign` or `worker.ign` in the command to validate that the Ignition config files for the control plane and compute nodes are also available. + .Example output [source,terminal] @@ -62,9 +63,7 @@ $ curl -k http:///bootstrap.ign <1> Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0{"ignition":{"version":"3.2.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":["ssh-rsa... ---- -+ -Replace `bootstrap.ign` with `master.ign` or `worker.ign` in the command to validate that the Ignition config files for the control plane and compute nodes are also available. -+ + . Although it is possible to obtain the {op-system} images that are required for your preferred method of installing operating system instances from the ifdef::openshift-enterprise[] ifndef::ibm-power[] @@ -132,19 +131,19 @@ It is possible to interrupt the {op-system} installation boot process to add ker ifdef::restricted[] [source,terminal] ---- -$ sudo coreos-installer install --ignition-url=http:///.ign \ <1> ---ignition-hash=sha512- --offline <2> +$ sudo coreos-installer install --ignition-url=http:///.ign \ +--ignition-hash=sha512- --offline ---- endif::[] ifndef::restricted[] [source,terminal] ---- -$ sudo coreos-installer install --ignition-url=http:///.ign \ <1> ---ignition-hash=sha512- <2> +$ sudo coreos-installer install --ignition-url=http:///.ign \ +--ignition-hash=sha512- ---- endif::[] -<1> You must run the `coreos-installer` command by using `sudo`, because the `core` user does not have the required root privileges to perform the installation. -<2> The `--ignition-hash` option is required when the Ignition config file is obtained through an HTTP URL to validate the authenticity of the Ignition config file on the cluster node. `` is the Ignition config file SHA512 digest obtained in a preceding step. +* ``: You must run the `coreos-installer` command by using `sudo`, because the `core` user does not have the required root privileges to perform the installation. +* ``: The `--ignition-hash` option is required when the Ignition config file is obtained through an HTTP URL to validate the authenticity of the Ignition config file on the cluster node. `` is the Ignition config file SHA512 digest obtained in a preceding step. + [NOTE] ==== @@ -162,7 +161,6 @@ $ sudo coreos-installer install --ignition-url=http://192.168.1.2:80/installatio ---- endif::[] ifndef::restricted[] -+ [source,terminal] ---- $ sudo coreos-installer install --ignition-url=http://192.168.1.2:80/installation_directory/bootstrap.ign /dev/sda \ diff --git a/modules/installation-user-infra-machines-pxe.adoc b/modules/installation-user-infra-machines-pxe.adoc index 90e36bd6d5..2190d60d60 100644 --- a/modules/installation-user-infra-machines-pxe.adoc +++ b/modules/installation-user-infra-machines-pxe.adoc @@ -18,6 +18,7 @@ endif::[] :_mod-docs-content-type: PROCEDURE [id="installation-user-infra-machines-pxe_{context}"] + ifndef::only-pxe[] = Installing {op-system} by using PXE or iPXE booting @@ -27,6 +28,7 @@ ifdef::only-pxe[] endif::only-pxe[] +[role="_abstract"] ifndef::only-pxe[] You can use PXE or iPXE booting to install {op-system} on the machines. endif::only-pxe[] @@ -64,9 +66,11 @@ installation, do not delete these files. + [source,terminal] ---- -$ curl -k http:///bootstrap.ign <1> +$ curl -k http:///bootstrap.ign ---- + +* ``: Replace `bootstrap.ign` with `master.ign` or `worker.ign` in the command to validate that the Ignition config files for the control plane and compute nodes are also available. ++ .Example output [source,terminal] ---- @@ -74,9 +78,6 @@ $ curl -k http:///bootstrap.ign <1> Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0{"ignition":{"version":"3.2.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":["ssh-rsa... ---- -+ -Replace `bootstrap.ign` with `master.ign` or `worker.ign` in the command to validate -that the Ignition config files for the control plane and compute nodes are also available. . Although it is possible to obtain the {op-system} `kernel`, `initramfs` and `rootfs` files that are required for your preferred method of installing operating system instances from the @@ -135,8 +136,7 @@ for this procedure. {op-system} QCOW2 images are not supported for this installation type. ==== + -The file names contain the {product-title} version number. -They resemble the following examples: +The file names contain the {product-title} version number. They resemble the following examples: + ifndef::openshift-origin[] ** `kernel`: `rhcos--live-kernel-` @@ -169,12 +169,10 @@ ifdef::only-pxe[] endif::only-pxe[] + ifndef::only-pxe[] -Modify one of the following example menu entries for your environment and verify -that the image and Ignition files are properly accessible: +. Modify one of the following example menu entries for your environment and verify that the image and Ignition files are properly accessible: endif::only-pxe[] - ifdef::only-pxe[] -Modify the following example menu entry for your environment and verify that the image and Ignition files are properly accessible: +. Modify the following example menu entry for your environment and verify that the image and Ignition files are properly accessible: endif::only-pxe[] ifndef::only-pxe[] ** For PXE (`x86_64`): @@ -185,21 +183,15 @@ DEFAULT pxeboot TIMEOUT 20 PROMPT 0 LABEL pxeboot - KERNEL http:///rhcos--live-kernel- <1> - APPEND initrd=http:///rhcos--live-initramfs..img coreos.live.rootfs_url=http:///rhcos--live-rootfs..img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http:///bootstrap.ign <2> <3> + KERNEL http:///rhcos--live-kernel- + APPEND initrd=http:///rhcos--live-initramfs..img coreos.live.rootfs_url=http:///rhcos--live-rootfs..img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http:///bootstrap.ign ---- -<1> Specify the location of the live `kernel` file that you uploaded to your HTTP -server. -The URL must be HTTP, TFTP, or FTP; HTTPS and NFS are not supported. -<2> If you use multiple NICs, specify a single interface in the `ip` option. -For example, to use DHCP on a NIC that is named `eno1`, set `ip=eno1:dhcp`. -<3> Specify the locations of the {op-system} files that you uploaded to your -HTTP server. The `initrd` parameter value is the location of the `initramfs` file, -the `coreos.live.rootfs_url` parameter value is the location of the -`rootfs` file, and the `coreos.inst.ignition_url` parameter value is the -location of the bootstrap Ignition config file. -You can also add more kernel arguments to the `APPEND` line to configure networking -or other boot options. ++ +where: ++ +`kernel`:: Specify the location of the live `kernel` file that you uploaded to your HTTP +server. The URL must be HTTP, TFTP, or FTP; HTTPS and NFS are not supported. +`initrd=main`:: If you use multiple NICs, specify a single interface in the `ip` option. For example, to use DHCP on a NIC that is named `eno1`, set `ip=eno1:dhcp`. Specify the locations of the {op-system} files that you uploaded to your HTTP server. The `initrd` parameter value is the location of the `initramfs` file, the `coreos.live.rootfs_url` parameter value is the location of the `rootfs` file, and the `coreos.inst.ignition_url` parameter value is the location of the bootstrap Ignition config file. You can also add more kernel arguments to the `APPEND` line to configure networking or other boot options. + [NOTE] ==== @@ -214,19 +206,13 @@ endif::openshift-origin[] ): + ---- -kernel http:///rhcos--live-kernel- initrd=main coreos.live.rootfs_url=http:///rhcos--live-rootfs..img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http:///bootstrap.ign <1> <2> -initrd --name main http:///rhcos--live-initramfs..img <3> +kernel http:///rhcos--live-kernel- initrd=main coreos.live.rootfs_url=http:///rhcos--live-rootfs..img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http:///bootstrap.ign +initrd --name main http:///rhcos--live-initramfs..img boot ---- -<1> Specify the locations of the {op-system} files that you uploaded to your -HTTP server. The `kernel` parameter value is the location of the `kernel` file, -the `initrd=main` argument is needed for booting on UEFI systems, -the `coreos.live.rootfs_url` parameter value is the location of the `rootfs` file, -and the `coreos.inst.ignition_url` parameter value is the -location of the bootstrap Ignition config file. -<2> If you use multiple NICs, specify a single interface in the `ip` option. +`kernel`:: Specify the locations of the {op-system} files that you uploaded to your HTTP server. The `kernel` parameter value is the location of the `kernel` file, the `initrd=main` argument is needed for booting on UEFI systems, the `coreos.live.rootfs_url` parameter value is the location of the `rootfs` file, and the `coreos.inst.ignition_url` parameter value is the location of the bootstrap Ignition config file. If you use multiple NICs, specify a single interface in the `ip` option. For example, to use DHCP on a NIC that is named `eno1`, set `ip=eno1:dhcp`. -<3> Specify the location of the `initramfs` file that you uploaded to your HTTP server. +`initrd`:: Specify the location of the `initramfs` file that you uploaded to your HTTP server. + [NOTE] ==== @@ -245,16 +231,17 @@ ifndef::only-pxe,openshift-origin[] + ---- menuentry 'Install CoreOS' { - linux rhcos--live-kernel- coreos.live.rootfs_url=http:///rhcos--live-rootfs..img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http:///bootstrap.ign <1> <2> - initrd rhcos--live-initramfs..img <3> + linux rhcos--live-kernel- coreos.live.rootfs_url=http:///rhcos--live-rootfs..img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http:///bootstrap.ign + initrd rhcos--live-initramfs..img } ---- -<1> Specify the locations of the {op-system} files that you uploaded to your -HTTP/TFTP server. The `kernel` parameter value is the location of the `kernel` file on your TFTP server. -The `coreos.live.rootfs_url` parameter value is the location of the `rootfs` file, and the `coreos.inst.ignition_url` parameter value is the location of the bootstrap Ignition config file on your HTTP Server. -<2> If you use multiple NICs, specify a single interface in the `ip` option. ++ +where: ++ +`coreos.live.rootfs_url`:: Specify the locations of the {op-system} files that you uploaded to your HTTP/TFTP server. +`kernel`:: The `kernel` parameter value is the location of the `kernel` file on your TFTP server. The `coreos.live.rootfs_url` parameter value is the location of the `rootfs` file, and the `coreos.inst.ignition_url` parameter value is the location of the bootstrap Ignition config file on your HTTP Server. If you use multiple NICs, specify a single interface in the `ip` option. For example, to use DHCP on a NIC that is named `eno1`, set `ip=eno1:dhcp`. -<3> Specify the location of the `initramfs` file that you uploaded to your TFTP server. +`initrd rhcos`:: Specify the location of the `initramfs` file that you uploaded to your TFTP server. endif::only-pxe,openshift-origin[]