搜索

8.4. 使用 iPXE 引导主机

download PDF

Assisted Installer 提供了一个 iPXE 脚本,其中包含为基础架构环境引导发现镜像所需的所有工件。由于 iPXE 的当前 HTTPS 实施的限制,建议是下载并公开 HTTP 服务器中所需的工件。目前,即使 iPXE 支持 HTTPS 协议,支持的算法也比较旧且不推荐。

支持的密码的完整列表位于 https://ipxe.org/crypto 中。

先决条件

  • 已使用 API 创建基础架构环境,或者已使用 Web 控制台创建集群。
  • 在 shell 中将您的基础架构环境 ID 导出为 $INFRA_ENV_ID
  • 您在访问 API 时具有凭证,并在 shell 中将令牌导出为 $API_TOKEN
注意

如果使用 Web 控制台配置 iPXE,则 $INFRA_ENV_ID$API_TOKEN 变量被预先设置。

  • 您有一个 HTTP 服务器来托管镜像。
注意

IBM Power® 只支持 PXE,其要求如下:

  • GRUB2 安装在 /var/lib/tftpboot
  • DHCP 和 TFTP 用于 PXE

流程

  1. 运行以下命令,直接从 Web 控制台下载 iPXE 脚本,或者从 Assisted Installer 获取 iPXE 脚本:

    $ curl \
      --silent \
      --header "Authorization: Bearer $API_TOKEN" \
      https://api.openshift.com/api/assisted-install/v2/infra-envs/$INFRA_ENV_ID/downloads/files?file_name=ipxe-script > ipxe-script

    Example

    #!ipxe
    initrd --name initrd http://api.openshift.com/api/assisted-images/images/<infra_env_id>/pxe-initrd?arch=x86_64&image_token=<token_string>&version=4.10
    kernel http://api.openshift.com/api/assisted-images/boot-artifacts/kernel?arch=x86_64&version=4.10 initrd=initrd coreos.live.rootfs_url=http://api.openshift.com/api/assisted-images/boot-artifacts/rootfs?arch=x86_64&version=4.10 random.trust_cpu=on rd.luks.options=discard ignition.firstboot ignition.platform.id=metal console=tty1 console=ttyS1,115200n8 coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8"
    boot

  2. 通过从 ipxe-script 中提取 URL 来下载所需的工件:

    1. 运行以下命令来下载初始 RAM 磁盘:

      $ awk '/^initrd /{print $NF}' ipxe-script \
      | xargs curl -o initrd.img -L
    2. 运行以下命令来下载 Linux 内核:

      $ awk '/^kernel /{print $2}' ipxe-script | xargs curl -o kernel -L
    3. 运行以下命令来下载根文件系统:

      $ grep ^kernel ipxe_script | xargs -n1 | grep ^coreos.live.rootfs_url | cut -d = -f 2,3,4 | xargs curl -o rootfs.img -L
  3. 将 URL 更改为 ipxe-script 中的不同工件,使其与您的本地 HTTP 服务器匹配。例如:

    #!ipxe
    set webserver http://192.168.0.1
    initrd --name initrd $webserver/initrd.img
    kernel $webserver/kernel initrd=initrd coreos.live.rootfs_url=$webserver/rootfs.img random.trust_cpu=on rd.luks.options=discard ignition.firstboot ignition.platform.id=metal console=tty1 console=ttyS1,115200n8 coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8"
    boot
  4. 可选:在 IBM Z® 中使用 RHEL KVM 安装时,您必须通过指定附加内核参数来引导主机:

    random.trust_cpu=on rd.luks.options=discard ignition.firstboot ignition.platform.id=metal console=tty1 console=ttyS1,115200n8 coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8
    注意

    当您在 RHEL KVM 上使用 iPXE 安装时,虚拟机主机上的虚拟机可能不会在第一次引导时启动。您必须手动启动它们。

  5. 可选: 在 IBM Power® 上安装时,您必须下载 initramfs内核root 镜像,如下所示:

    1. initrd.imgkernel.img 镜像复制到 /var/lib/tftpboot/rhcos PXE 目录中。
    2. rootfs.img 复制到 /var/www/html/install HTTPD 目录。
    3. /var/lib/tftpboot/boot/grub2/grub.cfg 目录中添加以下条目:

      if [ ${net_default_mac} == fa:1d:67:35:13:20 ]; then
      default=0
      fallback=1
      timeout=1
      menuentry "CoreOS (BIOS)" {
      echo "Loading kernel"
      linux "/rhcos/kernel.img" ip=dhcp rd.neednet=1 ignition.platform.id=metal ignition.firstboot coreos.live.rootfs_url=http://9.114.98.8:8000/install/rootfs.img
      echo "Loading initrd"
      initrd "/rhcos/initrd.img"
      }
      fi
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.