Merge "Update doc for UEFI first"
This commit is contained in:
commit
5b4c929c96
@ -1,11 +1,11 @@
|
|||||||
Configuring PXE and iPXE
|
Configuring PXE and iPXE
|
||||||
========================
|
========================
|
||||||
|
|
||||||
PXE setup
|
TFTP server setup
|
||||||
---------
|
-----------------
|
||||||
|
|
||||||
If you will be using PXE, it needs to be set up on the Bare Metal service
|
In order to deploy instances via PXE, a TFTP server needs to be
|
||||||
node(s) where ``ironic-conductor`` is running.
|
set up on the Bare Metal service nodes which run the ``ironic-conductor``.
|
||||||
|
|
||||||
#. Make sure the tftp root directory exist and can be written to by the
|
#. Make sure the tftp root directory exist and can be written to by the
|
||||||
user the ``ironic-conductor`` is running as. For example::
|
user the ``ironic-conductor`` is running as. For example::
|
||||||
@ -13,27 +13,23 @@ node(s) where ``ironic-conductor`` is running.
|
|||||||
sudo mkdir -p /tftpboot
|
sudo mkdir -p /tftpboot
|
||||||
sudo chown -R ironic /tftpboot
|
sudo chown -R ironic /tftpboot
|
||||||
|
|
||||||
#. Install tftp server and the syslinux package with the PXE boot images:
|
#. Install tftp server:
|
||||||
|
|
||||||
Ubuntu (Up to and including 14.04)::
|
Ubuntu::
|
||||||
|
|
||||||
sudo apt-get install xinetd tftpd-hpa syslinux-common syslinux
|
sudo apt-get install xinetd tftpd-hpa
|
||||||
|
|
||||||
Ubuntu (14.10 and after)::
|
|
||||||
|
|
||||||
sudo apt-get install xinetd tftpd-hpa syslinux-common pxelinux
|
|
||||||
|
|
||||||
RHEL7/CentOS7::
|
RHEL7/CentOS7::
|
||||||
|
|
||||||
sudo yum install tftp-server syslinux-tftpboot xinetd
|
sudo yum install tftp-server xinetd
|
||||||
|
|
||||||
Fedora::
|
Fedora::
|
||||||
|
|
||||||
sudo dnf install tftp-server syslinux-tftpboot xinetd
|
sudo dnf install tftp-server xinetd
|
||||||
|
|
||||||
SUSE::
|
SUSE::
|
||||||
|
|
||||||
sudo zypper install tftp syslinux xinetd
|
sudo zypper install tftp xinetd
|
||||||
|
|
||||||
#. Using xinetd to provide a tftp server setup to serve ``/tftpboot``.
|
#. Using xinetd to provide a tftp server setup to serve ``/tftpboot``.
|
||||||
Create or edit ``/etc/xinetd.d/tftp`` as below::
|
Create or edit ``/etc/xinetd.d/tftp`` as below::
|
||||||
@ -63,55 +59,16 @@ node(s) where ``ironic-conductor`` is running.
|
|||||||
|
|
||||||
sudo systemctl restart xinetd
|
sudo systemctl restart xinetd
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
In certain environments the network's MTU may cause TFTP UDP packets to get
|
In certain environments the network's MTU may cause TFTP UDP packets to get
|
||||||
fragmented. Certain PXE firmwares struggle to reconstruct the fragmented
|
fragmented. Certain PXE firmwares struggle to reconstruct the fragmented
|
||||||
packets which can cause significant slow down or even prevent the server from
|
packets which can cause significant slow down or even prevent the server
|
||||||
PXE booting. In order to avoid this, TFTPd provides an option to limit the
|
from PXE booting. In order to avoid this, TFTPd provides an option to limit
|
||||||
packet size so that it they do not get fragmented. To set this additional
|
the packet size so that it they do not get fragmented. To set this
|
||||||
option in the server_args above::
|
additional option in the server_args above::
|
||||||
|
|
||||||
--blocksize <MAX MTU minus 32>
|
--blocksize <MAX MTU minus 32>
|
||||||
|
|
||||||
#. Copy the PXE image to ``/tftpboot``. The PXE image might be found at [1]_:
|
|
||||||
|
|
||||||
Ubuntu (Up to and including 14.04)::
|
|
||||||
|
|
||||||
sudo cp /usr/lib/syslinux/pxelinux.0 /tftpboot
|
|
||||||
|
|
||||||
Ubuntu (14.10 and after)::
|
|
||||||
|
|
||||||
sudo cp /usr/lib/PXELINUX/pxelinux.0 /tftpboot
|
|
||||||
|
|
||||||
RHEL7/CentOS7/SUSE::
|
|
||||||
|
|
||||||
sudo cp /usr/share/syslinux/pxelinux.0 /tftpboot
|
|
||||||
|
|
||||||
#. If whole disk images need to be deployed via PXE-netboot, copy the
|
|
||||||
chain.c32 image to ``/tftpboot`` to support it:
|
|
||||||
|
|
||||||
Ubuntu (Up to and including 14.04)::
|
|
||||||
|
|
||||||
sudo cp /usr/lib/syslinux/chain.c32 /tftpboot
|
|
||||||
|
|
||||||
Ubuntu (14.10 and after)::
|
|
||||||
|
|
||||||
sudo cp /usr/lib/syslinux/modules/bios/chain.c32 /tftpboot
|
|
||||||
|
|
||||||
Fedora::
|
|
||||||
|
|
||||||
sudo cp /boot/extlinux/chain.c32 /tftpboot
|
|
||||||
|
|
||||||
RHEL7/CentOS7/SUSE::
|
|
||||||
|
|
||||||
sudo cp /usr/share/syslinux/chain.c32 /tftpboot/
|
|
||||||
|
|
||||||
#. If the version of syslinux is **greater than** 4 we also need to make sure
|
|
||||||
that we copy the library modules into the ``/tftpboot`` directory [2]_
|
|
||||||
[1]_. For example, for Ubuntu run::
|
|
||||||
|
|
||||||
sudo cp /usr/lib/syslinux/modules/*/ldlinux.* /tftpboot
|
|
||||||
|
|
||||||
#. Create a map file in the tftp boot directory (``/tftpboot``)::
|
#. Create a map file in the tftp boot directory (``/tftpboot``)::
|
||||||
|
|
||||||
@ -120,22 +77,17 @@ node(s) where ``ironic-conductor`` is running.
|
|||||||
echo 're ^(^/) /tftpboot/\1' >> /tftpboot/map-file
|
echo 're ^(^/) /tftpboot/\1' >> /tftpboot/map-file
|
||||||
echo 're ^([^/]) /tftpboot/\1' >> /tftpboot/map-file
|
echo 're ^([^/]) /tftpboot/\1' >> /tftpboot/map-file
|
||||||
|
|
||||||
.. [1] On **Fedora/RHEL** the ``syslinux-tftpboot`` package already install
|
|
||||||
the library modules and PXE image at ``/tftpboot``. If the TFTP server
|
|
||||||
is configured to listen to a different directory you should copy the
|
|
||||||
contents of ``/tftpboot`` to the configured directory
|
|
||||||
.. [2] http://www.syslinux.org/wiki/index.php/Library_modules
|
|
||||||
|
|
||||||
|
UEFI PXE - Grub setup
|
||||||
|
---------------------
|
||||||
|
|
||||||
PXE UEFI setup
|
In order to deploy instances with PXE on bare metal nodes which support
|
||||||
--------------
|
UEFI, perform these additional steps on the ironic conductor node to configure
|
||||||
|
the PXE UEFI environment.
|
||||||
If you want to deploy on a UEFI supported bare metal, perform these additional
|
|
||||||
steps on the ironic conductor node to configure the PXE UEFI environment.
|
|
||||||
|
|
||||||
#. Install Grub2 and shim packages:
|
#. Install Grub2 and shim packages:
|
||||||
|
|
||||||
Ubuntu (14.04LTS and later)::
|
Ubuntu (16.04LTS and later)::
|
||||||
|
|
||||||
sudo apt-get install grub-efi-amd64-signed shim-signed
|
sudo apt-get install grub-efi-amd64-signed shim-signed
|
||||||
|
|
||||||
@ -153,7 +105,7 @@ steps on the ironic conductor node to configure the PXE UEFI environment.
|
|||||||
|
|
||||||
#. Copy grub and shim boot loader images to ``/tftpboot`` directory:
|
#. Copy grub and shim boot loader images to ``/tftpboot`` directory:
|
||||||
|
|
||||||
Ubuntu (14.04LTS and later)::
|
Ubuntu (16.04LTS and later)::
|
||||||
|
|
||||||
sudo cp /usr/lib/shim/shim.efi.signed /tftpboot/bootx64.efi
|
sudo cp /usr/lib/shim/shim.efi.signed /tftpboot/bootx64.efi
|
||||||
sudo cp /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed /tftpboot/grubx64.efi
|
sudo cp /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed /tftpboot/grubx64.efi
|
||||||
@ -205,10 +157,8 @@ steps on the ironic conductor node to configure the PXE UEFI environment.
|
|||||||
|
|
||||||
sudo chmod 644 $GRUB_DIR/grub.cfg
|
sudo chmod 644 $GRUB_DIR/grub.cfg
|
||||||
|
|
||||||
#. Update the bare metal node with ``boot_mode`` capability in node's properties
|
#. Update the bare metal node with ``boot_mode:uefi`` capability in
|
||||||
field::
|
node's properties field. See :ref:`boot_mode_support` for details.
|
||||||
|
|
||||||
openstack baremetal node set <node-uuid> --property capabilities='boot_mode:uefi'
|
|
||||||
|
|
||||||
#. Make sure that bare metal node is configured to boot in UEFI boot mode and
|
#. Make sure that bare metal node is configured to boot in UEFI boot mode and
|
||||||
boot device is set to network/pxe.
|
boot device is set to network/pxe.
|
||||||
@ -219,8 +169,73 @@ steps on the ironic conductor node to configure the PXE UEFI environment.
|
|||||||
for them. Please check :doc:`../admin/drivers` for information on whether
|
for them. Please check :doc:`../admin/drivers` for information on whether
|
||||||
your driver requires manual UEFI configuration.
|
your driver requires manual UEFI configuration.
|
||||||
|
|
||||||
.. note::
|
|
||||||
For more information on configuring boot modes, see :ref:`boot_mode_support`.
|
Legacy BIOS - Syslinux setup
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
In order to deploy instances with PXE on bare metal using Legacy BIOS boot
|
||||||
|
mode, perform these additional steps on the ironic conductor node.
|
||||||
|
|
||||||
|
#. Install the syslinux package with the PXE boot images:
|
||||||
|
|
||||||
|
Ubuntu (16.04LTS and later)::
|
||||||
|
|
||||||
|
sudo apt-get install syslinux-common pxelinux
|
||||||
|
|
||||||
|
RHEL7/CentOS7::
|
||||||
|
|
||||||
|
sudo yum install syslinux-tftpboot
|
||||||
|
|
||||||
|
Fedora::
|
||||||
|
|
||||||
|
sudo dnf install syslinux-tftpboot
|
||||||
|
|
||||||
|
SUSE::
|
||||||
|
|
||||||
|
sudo zypper install syslinux
|
||||||
|
|
||||||
|
#. Copy the PXE image to ``/tftpboot``. The PXE image might be found at [1]_:
|
||||||
|
|
||||||
|
Ubuntu (16.04LTS and later)::
|
||||||
|
|
||||||
|
sudo cp /usr/lib/PXELINUX/pxelinux.0 /tftpboot
|
||||||
|
|
||||||
|
RHEL7/CentOS7/SUSE::
|
||||||
|
|
||||||
|
sudo cp /usr/share/syslinux/pxelinux.0 /tftpboot
|
||||||
|
|
||||||
|
#. If whole disk images need to be deployed via PXE-netboot, copy the
|
||||||
|
chain.c32 image to ``/tftpboot`` to support it:
|
||||||
|
|
||||||
|
Ubuntu (16.04LTS and later)::
|
||||||
|
|
||||||
|
sudo cp /usr/lib/syslinux/modules/bios/chain.c32 /tftpboot
|
||||||
|
|
||||||
|
Fedora::
|
||||||
|
|
||||||
|
sudo cp /boot/extlinux/chain.c32 /tftpboot
|
||||||
|
|
||||||
|
RHEL7/CentOS7/SUSE::
|
||||||
|
|
||||||
|
sudo cp /usr/share/syslinux/chain.c32 /tftpboot/
|
||||||
|
|
||||||
|
#. If the version of syslinux is **greater than** 4 we also need to make sure
|
||||||
|
that we copy the library modules into the ``/tftpboot`` directory [2]_
|
||||||
|
[1]_. For example, for Ubuntu run::
|
||||||
|
|
||||||
|
sudo cp /usr/lib/syslinux/modules/*/ldlinux.* /tftpboot
|
||||||
|
|
||||||
|
#. Update the bare metal node with ``boot_mode:bios`` capability in
|
||||||
|
node's properties field. See :ref:`boot_mode_support` for details.
|
||||||
|
|
||||||
|
#. Make sure that bare metal node is configured to boot in Legacy BIOS boot mode
|
||||||
|
and boot device is set to network/pxe.
|
||||||
|
|
||||||
|
.. [1] On **Fedora/RHEL** the ``syslinux-tftpboot`` package already installs
|
||||||
|
the library modules and PXE image at ``/tftpboot``. If the TFTP server
|
||||||
|
is configured to listen to a different directory you should copy the
|
||||||
|
contents of ``/tftpboot`` to the configured directory
|
||||||
|
.. [2] http://www.syslinux.org/wiki/index.php/Library_modules
|
||||||
|
|
||||||
|
|
||||||
iPXE setup
|
iPXE setup
|
||||||
|
Loading…
x
Reference in New Issue
Block a user