openstack创建实例报Build of instance d401db9e-xxxx-97c5d7685592 aborted: Unknown auth type: None

OpenStack实例创建失败:Unknown auth type与资源提供者冲突
在尝试通过OpenStack Dashboard创建实例时遇到'Build of instance... aborted: Unknown auth type: None'错误。经过一系列排查,包括检查keystone认证、手动创建实例、查看nova-conductor和nova-compute日志,发现资源提供者创建失败和409冲突错误。尝试删除并重新创建nova用户、服务和endpoint,问题依旧。最终通过删除数据库并重新初始化keystone、glance、nova、neutron、placement和cinder服务的数据库,同步数据并创建实例类型,成功解决问题。

这是在Dashborad界面得到以上报错

排查半天没有任何结果,发现keystone还是报认证错误。controller其他日志正常。

通过shell手动创建实例

[root@controller ~]#openstack server create --flavor m1.tiny --image cirros --nic net-id=3e4bc802-7e7f-49be-a9ae-f6216013b2c6 --availability-zone nova:compute-3:compute-3  test-node3

 发行又出现了 No valid host was found. There are not enough hosts available.错误。

[root@controller nova]# cat nova-conductor.log  ##日志报错信息还是指向NoValidHost: No valid host was found. There are not enough hosts available.

[root@compute-3 nova]# cat nova-compute.log  ##一直在循环报错 Error updating resources for node compute-3: ResourceProviderCreationFailed: Failed to create resource provider compute-3

[root@compute-3 nova]# cat nova-compute.log

2020-12-17 14:49:06.272 2529 ERROR nova.scheduler.client.report [req-98d36e66-25a2-40de-8e25-7d1f489b0588 - - - - -] [req-5353573f-da11-48ff-8472-1e9a471269cd] Failed to create resource provider record in placement API for UUID b1c484e8-58cb-41d5-84d3-1e1f4ffab341. Got 409: {"errors": [{"status": 409, "request_id": "req-5353573f-da11-48ff-8472-1e9a471269cd", "detail": "There was a conflict when trying to complete your request.\n\n Conflicting resource provider name: compute-3.rocky2.yfb0801800.islab.net.cn already exists.  ", "title": "Conflict"}]}.

2020-12-17 14:49:06.272 2529 ERROR nova.compute.manager [req-98d36e66-25a2-40de-8e25-7d1f489b0588 - - - - -] Error updating resources for node compute-3: ResourceProviderCreationFailed: Failed to create resource provider compute-3

2020-12-17 14:49:06.272 2529 ERROR nova.compute.manager Traceback (most recent call last):

因为已经做过多次的su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova。判断数据库出问题的可能性不大。怀疑keystone的nova用户权限有问题

检查openstack状态和nova计算节点,表面上看状态一切正常

### OpenStack 命令行工具创建实例失败的原因分析 在使用 `openstack server create` 命令时,如果命令执行失败,可能由以下几个原因导致: #### 1. 环境变量配置错误 环境变量的正确性直接影响到 OpenStack 命令行工具的身份验证。如果以下变量未正确设置,认证将失败[^1]。 - `OS_USERNAME`:用户登录名,当前为 `student_user`。 - `OS_PASSWORD`:用户密码,当前为 `123456`。 - `OS_PROJECT_NAME`:所属项目名称,当前为 `student_project`。 - 其他必要变量如 `OS_AUTH_URL`、`OS_USER_DOMAIN_NAME` 和 `OS_PROJECT_DOMAIN_NAME` 也必须正确配置。 如果这些变量未正确设置,可以参考以下示例进行修正: ```bash export OS_USERNAME=student_user export OS_PASSWORD=123456 export OS_PROJECT_NAME=student_project export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 ``` 加载环境变量后,可以通过以下命令验证认证是否成功: ```bash openstack token issue ``` 如果认证失败,则需要检查上述环境变量是否与实际 OpenStack 配置匹配。 #### 2. 镜像、规格或网络资源不可用 `openstack server create` 命令依赖于镜像、规格和网络资源的存在。如果这些资源不存在或无法访问,命令将失败。 - **镜像**:确保指定的镜像 `cirros` 存在于 OpenStack 中,并且用户有权访问。 - **规格**:确保指定的规格 `m1.tiny` 已定义并且可用。 - **网络**:确保指定了有效的网络名称或 ID。 以下是正确的命令格式示例: ```bash openstack server create --image cirros --flavor m1.tiny --network private test-instance ``` 如果缺少 `--network` 参数或指定的网络不存在,命令将失败。 #### 3. 用户权限不足 用户可能没有足够的权限执行 `openstack server create` 命令。例如,用户可能没有权限访问指定的镜像、规格或网络资源。 可以通过以下命令检查用户的权限范围: ```bash openstack role list --user student_user --project student_project ``` 如果用户权限不足,需要联系管理员为其分配适当的角色。 #### 4. 控制器节点服务异常 如果 OpenStack 控制器节点的服务(如 Nova、Neutron 或 Glance)未正常运行,命令也可能失败。可以通过以下命令检查服务状态: ```bash openstack compute service list openstack network agent list openstack image service list ``` 如果发现服务状态异常,需要排查并修复相关服务。 --- ### 示例代码 以下是一个完整的脚本示例,用于验证环境变量并尝试创建实例: ```bash # 设置环境变量 export OS_USERNAME=student_user export OS_PASSWORD=123456 export OS_PROJECT_NAME=student_project export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 # 验证认证 openstack token issue # 创建实例 openstack server create --image cirros --flavor m1.tiny --network private test-instance ``` --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值