1.2. 为裸机置备服务配置 OpenStack
每个 OpenStack 服务都有一个用户名和密码,用于与身份服务进行身份验证。每个服务也需要通过 OpenStack Identity 服务定义,并且具有与之关联的端点 URL,以进行内部、管理和公共连接。
从 director 节点配置裸机置备服务:
获取
overcloudrc文件:source ~stack/overcloudrc
# source ~stack/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 OpenStack Bare Metal Provisioning 用户:
openstack user create --password IRONIC_PASSWORD --enable IRONIC_USER openstack role add --project service --user IRONIC_USER admin
# openstack user create --password IRONIC_PASSWORD --enable IRONIC_USER # openstack role add --project service --user IRONIC_USER adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在这里,
IRONIC_USER是裸机置备服务的用户,IRONIC_PASSWORD是密码。创建 OpenStack Bare Metal Provisioning 服务:
openstack service create --name ironic --description "Ironic bare metal provisioning service" baremetal
# openstack service create --name ironic --description "Ironic bare metal provisioning service" baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证其他 OpenStack 服务是否正在使用的虚拟 IP (VIP)地址:
openstack endpoint list -c "Service Name" -c "PublicURL" --long
# openstack endpoint list -c "Service Name" -c "PublicURL" --longCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令的输出列出了服务及其
公共 URL,它们通常都位于同一服务器上,并且使用相同的 IP 地址。获取您要在其中安装裸机置备服务的 Compute 节点的内部 API 网络地址:
route -n
# route -nCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令的输出列出了 IP 路由表,其中包含 IP 地址和每个 IP 地址的接口。
然后,使用内部 API 网络地址创建服务端点。
您可以检查用于 Internal 和 Admin URL 的 NIC 关联的 IP 地址,如下所示:
ifconfig INTERFACE
# ifconfig INTERFACECopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建服务端点:
openstack endpoint create --publicurl http://VIP:6385 --internalurl http://COMPUTE_INTERNAL_API_IP:6385 --adminurl http://COMPUTE_INTERNAL_API_IP:6385 --region regionOne SERVICE_ID
# openstack endpoint create --publicurl http://VIP:6385 --internalurl http://COMPUTE_INTERNAL_API_IP:6385 --adminurl http://COMPUTE_INTERNAL_API_IP:6385 --region regionOne SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在这里,
VIP是 HAProxy 中配置的虚拟 IP 地址,COMPUTE_INTERNAL_API_IP是运行连接到内部 API 网络的裸机置备服务的 Compute 节点的 IP 地址,SERVICE_ID是使用service create命令创建的 Bare Metal Provisioning 服务的 ID。
接下来,您必须配置 HAProxy,以确保收到您在上一步中创建的端点的公共 URL 的请求。要配置 HAProxy 值,请确保您以 root 用户身份登录控制器节点上的 root。
编辑
/etc/haproxy/haproxy.cfg文件,并在文件末尾添加以下行:listen ironic bind VIP:6385 transparent server SERVER_NAME COMPUTE_INTERNAL_API_IP:6385 check fall 5 inter 2000 rise 2
listen ironic bind VIP:6385 transparent server SERVER_NAME COMPUTE_INTERNAL_API_IP:6385 check fall 5 inter 2000 rise 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中:
-
VIP是虚拟 IP 地址。 -
SERVER_NAME是安装并运行裸机置备服务的 Compute 服务器的 HAProxy 识别名称。 -
COMPUTE_INTERNAL_API_IP是安装并运行裸机置备服务的 Compute 服务器的内部 API IP 地址。 -
透明地允许 HAProxy 绑定 IP 地址,即使它存在于 Controller 节点上,以便在集群环境中,虚拟 IP 地址可以在控制器之间移动。 检查 2000 间的 5 个增加 2指的是后端服务器上的以下健康检查:-
回退 5- 服务器在连续 5 个连续失败的健康检查后被视为不可用。 -
2000 年间,健康检查之间的间隔为 2000 毫秒或 2 秒。 -
增长 2- 服务器在连续 2 个成功健康检查后被视为可用。
-
-
重启 HAProxy 以确保更改生效:
systemctl restart haproxy.service
# systemctl restart haproxy.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以获取以下消息,说明后端服务器不可用: haproxy[4249]: proxy ironic 没有 server available!。现在,可以忽略此消息,因为您尚未安装或配置了服务。