2.5. 示例:使用 SSH 和 Virsh 测试裸机置备
通过在充当单一物理主机上的两个虚拟机上部署实例,测试裸机置备设置。这两个虚拟机都使用 libvirt 和 virsh 进行虚拟化。
SSH 驱动程序仅用于测试和评估目的。不建议用于 Red Hat OpenStack Platform 企业环境。
这个场景需要以下资源:
- 在 overcloud 节点上配置了裸机置备服务的 Red Hat OpenStack Platform 环境。您必须已完成本指南中的所有步骤。
- 安装了 Red Hat Enterprise Linux 7.2 和 libvirt 虚拟化工具的一个裸机机器。此系统充当包含虚拟化裸机节点的主机。
- 在裸机置备节点和包含虚拟化裸机节点的主机之间有一个网络连接。此网络充当裸机置备网络。
2.5.1. 创建虚拟化裸机节点 复制链接链接已复制到粘贴板!
在测试场景中创建用作裸机节点的两个虚拟机。节点将被称为 Node1
和 Node2
。
创建虚拟化裸机节点
- 从 libvirt 主机访问虚拟机管理器。
使用以下配置创建两个虚拟机:
- 1 vCPU
- 2048 MB 内存
- 网络引导(PXE)
- 20 GB 存储
-
Network source:
Host device eth0: macvtap
and Source mode:Bridge
.选择 macvtap 可设置虚拟机以共享主机的以太网网络接口。这样,裸机置备节点可以直接访问虚拟化节点。
- 关闭两个虚拟机。
2.5.2. 创建 SSH 密钥对 复制链接链接已复制到粘贴板!
创建 SSH 密钥对,它将允许裸机置备节点连接到 libvirt 主机。
创建 SSH 密钥对
在裸机置备节点上,创建一个新的 SSH 密钥:
ssh-keygen -t rsa -b 2048 -C "user@domain.com" -f ./virtkey
# ssh-keygen -t rsa -b 2048 -C "user@domain.com" -f ./virtkey
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用标识此密钥的电子邮件地址或其他注释替换 user@domain.com。当命令提示您输入密码短语时,按 Enter 键在没有密码短语的情况下继续。命令创建两个文件:私钥(virtkey)和公钥(virtkey.pub)。
将公钥的内容复制到 libvirt 主机的 root 用户的 /root/.ssh/authorized_keys 文件中:
ssh-copy-id -i virtkey root@LIBVIRT_HOST
# ssh-copy-id -i virtkey root@LIBVIRT_HOST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 LIBVIRT_HOST 替换为 libvirt 主机的 IP 地址或主机名。
在注册节点时使用私钥(virtkey)。
2.5.3. 将 Virtualized 节点添加为裸机节点 复制链接链接已复制到粘贴板!
将作为节点添加,您要在其上调配实例。在本例中,手动提供驱动程序详细信息,节点详细信息则使用硬件内省来发现。节点详情也可以逐个节点手动添加。请参阅 第 2.3.2 节 “手动添加节点” 了解更多信息。
将虚拟化节点添加为裸机节点
在裸机置备编排器服务节点上,启用
pxe_ssh
驱动程序:openstack-config --set /etc/ironic/ironic.conf \ DEFAULT enabled_drivers pxe_ssh
# openstack-config --set /etc/ironic/ironic.conf \ DEFAULT enabled_drivers pxe_ssh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要将
pxe_ssh
添加到现有驱动程序列表中,打开 文件,并将驱动程序添加到enabled_drivers
中的列表中,用逗号分隔。设置 shell,以使用 Identity 作为管理用户:
source ~/keystonerc_admin
# source ~/keystonerc_admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加第一个节点,并为 libvirt 主机注册 SSH 详情:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 替换以下值:
-
将 VIRTKEY_FILE_PATH 替换为
virtkey
SSH 私钥文件的绝对路径。 - 将 LIBVIRT_HOST_IP 替换为 libvirt 主机的 IP 地址或主机名。
- 将 KERNEL_UUID 替换为上传到镜像服务的 .kernel 镜像的唯一标识符。
- 将 INITRAMFS_UUID 替换为上传到镜像服务的 .initramfs 镜像的唯一标识符。
-
将 VIRTKEY_FILE_PATH 替换为
-
使用与以上相同的命令添加第二节点,并将
Node1
替换为Node2
。 将节点配置为在从节点磁盘中安装的本地引导加载程序(而非通过 PXE 或虚拟介质)进行初始部署后重新引导。本地引导功能还必须在用于调配节点的类别上设置。要启用本地引导,用于部署该节点的镜像必须包含 grub2。配置本地引导:
ironic node-update Node1 add \ properties/capabilities="boot_option:local" ironic node-update Node2 add \ properties/capabilities="boot_option:local"
# ironic node-update Node1 add \ properties/capabilities="boot_option:local" # ironic node-update Node2 add \ properties/capabilities="boot_option:local"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将节点移到 manageable 状态:
ironic node-set-provision-state Node1 manage ironic node-set-provision-state Node2 manage
# ironic node-set-provision-state Node1 manage # ironic node-set-provision-state Node2 manage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动节点上的内省:
ironic node-set-provision-state Node1 inspect ironic node-set-provision-state Node2 inspect
# ironic node-set-provision-state Node1 inspect # ironic node-set-provision-state Node2 inspect
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 节点发现和内省过程必须运行才能完成,然后才能调配节点。要检查节点内省的状态,请运行 ironic node-list,再查找
Provision State
。节点在成功完成内省后将处于available
状态。验证节点的设置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以上命令的输出应该为每个接口报告
True
或None
。标记为None
的接口是您尚未配置的接口,或者您的驱动程序不支持的接口。- 成功添加节点后,使用 第 3 章 启动裸机实例 启动两个实例。