You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VirtualBox双节点环境下Devstack与OSM MANO集成VIM配置报错求助

OSM对接DevStack VIM状态异常的分层排查方案

1 优先定位直接报错源

不要盲目调整配置,先获取第一手报错信息缩小范围:

  • 执行 osm vim-show openstack-site --literal,提取返回结果里_error字段的完整报错栈,跳过Web界面的简化状态展示,直接确认故障类型是认证失败、连接超时还是权限不足。
  • 进入OSM的VIM驱动容器拉取详细日志:
    • 执行 docker exec -it osm_im /bin/bash 进入容器
    • 查看openstack驱动日志:tail -f /var/log/osm/openstack-vim-driver.log | grep openstack-site,定位对接过程中的具体失败节点

2 核对VIM创建命令的参数匹配问题(最高发故障点)

你的初始创建命令存在3个极易踩坑的漏配项:

  • 漏配域参数:OSM内置的OpenStack驱动默认使用Default域做Keystone v3认证,全合一DevStack部署时如果自定义过域配置,缺少域参数会直接返回401认证失败。需要先在DevStack节点上执行 source openrc && openstack domain list 确认实际的用户域、项目域名称,再在原命令基础上补全域参数,修正后的创建命令参考:
    osm vim-create --name openstack-site --user admin --password <实际DevStack admin密码> --auth_url http://192.168.56.101:5000/v3 --tenant admin --account_type openstack --user_domain <实际用户域名> --project_domain <实际项目域名>
  • 密码不匹配:DevStack自动生成的openrc文件里的OS_PASSWORD,和登录Horizon的实际密码可能不一致(全合一部署时密码默认由local.conf的ADMIN_PASSWORD项定义),直接在DevStack节点上查看/etc/devstack/openrc里的密码值,和创建VIM时输入的密码完全对齐,不要混用Horizon登录密码和系统配置的admin密码。
  • 端口连通性验证不充分:不要只验证IP可ping通,在OSM节点上执行 curl http://192.168.56.101:5000/v3,确认Keystone服务能返回v3版本的元数据。如果返回连接超时,说明DevStack的Keystone默认绑定在127.0.0.1,仅允许本机访问,需要修改Keystone配置的绑定地址为0.0.0.0后重启服务。
  • 操作注意:修正参数后,需要先执行 osm vim-delete openstack-site 清除之前创建的错误VIM条目,再重新执行修正后的创建命令,避免旧条目残留的错误状态影响对接结果。

3 排查DevStack侧的配置限制

  • 校验账号权限:OSM对接用的admin账号,需要在admin项目下关联admin角色(不能只有普通_member_角色),否则拉取计算、网络、存储资源时会返回403权限不足。在DevStack节点上执行 openstack role assignment list --user admin --project admin 确认角色绑定关系。
  • 校验防火墙规则:如果DevStack节点开启了ufw防火墙,需要放通192.168.56.0/24网段的流量,避免拦截OSM节点发来的API请求。
  • 校验Keystone Service Catalog的endpoint地址:这是跨VM对接最容易忽略的问题。在DevStack节点上执行 openstack endpoint list,检查所有服务(Nova、Neutron、Glance、Cinder)的公共endpoint地址,必须是http://192.168.56.101:端口的Host-Only网卡地址,不能是127.0.0.1或NAT网卡的10.0.2.15地址——否则OSM通过认证后,会从Service Catalog里拿到错误的服务地址,尝试连接后必然超时报错。比如如果看到Nova服务的endpoint是http://127.0.0.1:8774/v2.1,就需要通过openstack endpoint set <endpoint ID> --publicurl http://192.168.56.101:8774/v2.1的命令修正为Host-Only网卡的IP。
  • 校验外部网络可见性:全合一DevStack默认创建的public外部网络,必须对admin账号可见,否则OSM创建VIM资源域时会因为找不到可用外部网络报错。在DevStack节点上执行 openstack network list 确认public网络的存在和访问权限。

4 兼容性校验

  • 核对OSM与DevStack的版本匹配关系:OSM 10及以上版本要求对接的OpenStack环境版本为Victoria及以上,低版本OpenStack(比如Train及更早版本)会因为API版本不兼容,导致驱动调用失败报error。
  • 排除服务绑定限制:DevStack默认的服务配置会优先绑定本地回环地址,跨主机对接时必须确保所有OpenStack服务的API绑定地址为0.0.0.0,不限制外部来源的请求。

内容的提问来源于stack exchange,提问作者sainzcr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 06:54:08