2.5. 示例:使用 SSH 和 Virsh 测试裸机置备


通过在充当单一物理主机上的两个虚拟机上部署实例,测试裸机置备设置。这两个虚拟机都使用 libvirtvirsh 进行虚拟化。

重要

SSH 驱动程序仅用于测试和评估目的。不建议用于 Red Hat OpenStack Platform 企业环境。

这个场景需要以下资源:

  • 在 overcloud 节点上配置了裸机置备服务的 Red Hat OpenStack Platform 环境。您必须已完成本指南中的所有步骤。
  • 安装了 Red Hat Enterprise Linux 7.2 和 libvirt 虚拟化工具的一个裸机机器。此系统充当包含虚拟化裸机节点的主机。
  • 在裸机置备节点和包含虚拟化裸机节点的主机之间有一个网络连接。此网络充当裸机置备网络。

2.5.1. 创建虚拟化裸机节点

在测试场景中创建用作裸机节点的两个虚拟机。节点将被称为 Node1Node2

创建虚拟化裸机节点

  1. libvirt 主机访问虚拟机管理器。
  2. 使用以下配置创建两个虚拟机:

    • 1 vCPU
    • 2048 MB 内存
    • 网络引导(PXE)
    • 20 GB 存储
    • Network source:Host device eth0: macvtap and Source mode:Bridge.选择 macvtap 可设置虚拟机以共享主机的以太网网络接口。这样,裸机置备节点可以直接访问虚拟化节点。
  3. 关闭两个虚拟机。

2.5.2. 创建 SSH 密钥对

创建 SSH 密钥对,它将允许裸机置备节点连接到 libvirt 主机。

创建 SSH 密钥对

  1. 在裸机置备节点上,创建一个新的 SSH 密钥:

    # ssh-keygen -t rsa -b 2048 -C "user@domain.com" -f ./virtkey
    Copy to Clipboard Toggle word wrap

    使用标识此密钥的电子邮件地址或其他注释替换 user@domain.com。当命令提示您输入密码短语时,按 Enter 键在没有密码短语的情况下继续。命令创建两个文件:私钥(virtkey)和公钥(virtkey.pub)。

  2. 将公钥的内容复制到 libvirt 主机的 root 用户的 /root/.ssh/authorized_keys 文件中:

    # ssh-copy-id -i virtkey root@LIBVIRT_HOST
    Copy to Clipboard Toggle word wrap

    LIBVIRT_HOST 替换为 libvirt 主机的 IP 地址或主机名。

在注册节点时使用私钥(virtkey)。

2.5.3. 将 Virtualized 节点添加为裸机节点

将作为节点添加,您要在其上调配实例。在本例中,手动提供驱动程序详细信息,节点详细信息则使用硬件内省来发现。节点详情也可以逐个节点手动添加。请参阅 第 2.3.2 节 “手动添加节点” 了解更多信息。

将虚拟化节点添加为裸机节点

  1. 在裸机置备编排器服务节点上,启用 pxe_ssh 驱动程序:

    # openstack-config --set /etc/ironic/ironic.conf \
       DEFAULT enabled_drivers pxe_ssh
    Copy to Clipboard Toggle word wrap

    如果要将 pxe_ssh 添加到现有驱动程序列表中,打开 文件,并将驱动程序添加到 enabled_drivers 中的列表中,用逗号分隔。

  2. 设置 shell,以使用 Identity 作为管理用户:

    # source ~/keystonerc_admin
    Copy to Clipboard Toggle word wrap
  3. 添加第一个节点,并为 libvirt 主机注册 SSH 详情:

    # ironic node-create -d pxe_ssh -n Node1 \
       -i ssh_virt_type=virsh \
       -i ssh_username=root \
       -i ssh_key_filename=VIRTKEY_FILE_PATH \
       -i ssh_address=LIBVIRT_HOST_IP \
       -i deploy_kernel=KERNEL_UUID \
       -i deploy_ramdisk=INITRAMFS_UUID
    Copy to Clipboard Toggle word wrap

    替换以下值:

    • VIRTKEY_FILE_PATH 替换为 virtkey SSH 私钥文件的绝对路径。
    • LIBVIRT_HOST_IP 替换为 libvirt 主机的 IP 地址或主机名。
    • KERNEL_UUID 替换为上传到镜像服务的 .kernel 镜像的唯一标识符。
    • INITRAMFS_UUID 替换为上传到镜像服务的 .initramfs 镜像的唯一标识符。
  4. 使用与以上相同的命令添加第二节点,并将 Node1 替换为 Node2
  5. 将节点配置为在从节点磁盘中安装的本地引导加载程序(而非通过 PXE 或虚拟介质)进行初始部署后重新引导。本地引导功能还必须在用于调配节点的类别上设置。要启用本地引导,用于部署该节点的镜像必须包含 grub2。配置本地引导:

    # ironic node-update Node1 add \
       properties/capabilities="boot_option:local"
    # ironic node-update Node2 add \
       properties/capabilities="boot_option:local"
    Copy to Clipboard Toggle word wrap
  6. 将节点移到 manageable 状态:

    # ironic node-set-provision-state Node1 manage
    # ironic node-set-provision-state Node2 manage
    Copy to Clipboard Toggle word wrap
  7. 启动节点上的内省:

    # ironic node-set-provision-state Node1 inspect
    # ironic node-set-provision-state Node2 inspect
    Copy to Clipboard Toggle word wrap

    节点发现和内省过程必须运行才能完成,然后才能调配节点。要检查节点内省的状态,请运行 ironic node-list,再查找 Provision State。节点在成功完成内省后将处于 available 状态。

  8. 验证节点的设置:

    # ironic node-validate Node1
    # ironic node-validate Node2
    +------------+--------+----------------------------+
    | Interface  | Result | Reason                     |
    +------------+--------+----------------------------+
    | console    | None   | not supported              |
    | deploy     | True   |                            |
    | inspect    | True   |                            |
    | management | True   |                            |
    | power      | True   |                            |
    +------------+--------+----------------------------+
    Copy to Clipboard Toggle word wrap

    以上命令的输出应该为每个接口报告 TrueNone。标记为 None 的接口是您尚未配置的接口,或者您的驱动程序不支持的接口。

  9. 成功添加节点后,使用 第 3 章 启动裸机实例 启动两个实例。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat