1.6.2. 准备置备主机
创建裸机凭证和集群时,必须具有可用的置备主机。置备主机为安装提供 bootstrap 主机虚拟机。它可以是虚拟机,也可以是运行基于内核的虚拟机 (KVM) 的服务。创建凭证和集群时,您需要此主机的详细信息。完成以下步骤以配置置备主机:
-
使用
SSH
登录 provisioner 节点。 运行以下命令,创建非 root 用户 (user-name) 并为该用户提供 sudo 权限:
useradd <user-name> passwd <password> echo "<user-name> ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/<user-name> chmod 0440 /etc/sudoers.d/<user-name>
输入以下命令为新用户创建 SSH 密钥:
su - <user-name> -c "ssh-keygen -t rsa -f /home/<user-name>/.ssh/id_rsa -N ''"
使用新创建的用户登陆到 provisioner 节点。
su - <user-name> [user-name@provisioner ~]$
输入以下命令使用 Red Hat Subscription Manager 来注册 provisioner 节点:
sudo subscription-manager register --username=<user-name> --password=<password> --auto-attach sudo subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms --enable=rhel-8-for-x86_64-baseos-rpms
如需有关 Red Hat Subscription Manager 的更多信息,请参阅 Red Hat OpenShift Container Platform 文档中的使用和配置 Red Hat Subscription Manager。
运行以下命令安装所需的软件包:
sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
修改用户以便为新创建的用户中添加
libvirt
组。sudo usermod --append --groups libvirt <user-name>
输入以下命令重启
firewalld
并启用http
服务:sudo systemctl start firewalld sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --add-port=5000/tcp --zone=libvirt --permanent sudo firewall-cmd --add-port=5000/tcp --zone=public --permanent sudo firewall-cmd --reload
输入以下命令启动并启用
libvirtd
服务:sudo systemctl start libvirtd sudo systemctl enable libvirtd --now
输入以下命令创建默认存储池并启动它:
sudo virsh pool-define-as --name default --type dir --target /var/lib/libvirt/images sudo virsh pool-start default sudo virsh pool-autostart default
查看 followsig 示例来配置网络:
置备网络(IPv4 地址)
sudo nohup bash -c """ nmcli con down "$PROV_CONN" nmcli con delete "$PROV_CONN" # RHEL 8.1 appends the word "System" in front of the connection, delete in case it exists nmcli con down "System $PROV_CONN" nmcli con delete "System $PROV_CONN" nmcli connection add ifname provisioning type bridge con-name provisioning nmcli con add type bridge-worker ifname "$PROV_CONN" master provisioning nmcli connection modify provisioning ipv4.addresses 172.22.0.1/24 ipv4.method manual nmcli con down provisioning nmcli con up provisioning"""
完成此步骤后,SSH 连接可能会断开。
IPv4 地址可以是任何无法使用 baremetal 网络路由的地址。
置备网络(IPv6 地址)
sudo nohup bash -c """ nmcli con down "$PROV_CONN" nmcli con delete "$PROV_CONN" # RHEL 8.1 appends the word "System" in front of the connection, delete in case it exists nmcli con down "System $PROV_CONN" nmcli con delete "System $PROV_CONN" nmcli connection add ifname provisioning type bridge con-name provisioning nmcli con add type bridge-worker ifname "$PROV_CONN" master provisioning nmcli connection modify provisioning ipv6.addresses fd00:1101::1/64 ipv6.method manual nmcli con down provisioning nmcli con up provisioning"""
完成此步骤后,SSH 连接可能会断开。
IPv6 地址可以是任何无法使用 baremetal 网络路由的地址。
在使用 IPv6 地址时,请确保启用了 UEFI,并且将 UEFI PXE 设置设为 IPv6 协议。
使用 SSH 重新连接到 provisioner 节点(如果需要)。
# ssh <user-name>@provisioner.<cluster-name>.<domain>
运行以下命令验证连接网桥是否已正确创建:
nmcli con show
您返回的结果类似以下内容:
NAME
UUID
TYPE
DEVICE
baremetal
4d5133a5-8351-4bb9-bfd4-3af264801530
bridge
baremetal
provisioning
43942805-017f-4d7d-a2c2-7cb3324482ed
bridge
provisioning
virbr0
d9bca40f-eee1-410b-8879-a2d4bb0465e7
bridge
virbr0
bridge-worker-eno1
76a8ed50-c7e5-4999-b4f6-6d9014dd0812
Ethernet
eno1
bridge-worker-eno2
f31c3353-54b7-48de-893a-02d2b34c4736
Ethernet
eno2
通过以下步骤创建
pull-secret.txt
文件:vim pull-secret.txt
- 在 Web 浏览器中,导航到 Install OpenShift on Bare Metal with user-provisioned infrastructure,再向下滚动到 Downloads 部分。
- 点 Copy pull secret。
-
将内容粘贴到
pull-secret.txt
文件中,并将内容保存到user-name
用户的主目录中。
您已准备好创建裸机凭证。