如何从OpenStack VM中查询关联的项目ID与项目名称信息
从OpenStack虚拟机内部获取关联项目信息的方法
以下两种方法不需要控制端权限,直接在虚拟机内部操作即可:
- 方法1:调用OpenStack元数据服务
直接在虚拟机内执行请求命令:curl http://169.254.169.254/openstack/latest/meta_data.json
解析返回的JSON结果,project_id字段即为虚拟机所属的项目ID,若平台配置了项目名称注入规则,返回结果中会同时包含project_name字段。 - 方法2:读取cloud-init本地缓存(仅适用于内置cloud-init的镜像)
直接读取虚拟机本地的缓存文件,无需发起网络请求:cat /run/cloud-init/instance-data.json
解析文件中v1层级下的project_id字段即可获取对应项目ID。
注意事项:
若访问169.254.169.254超时,先检查虚拟机出方向安全组是否放行了对该地址的访问,以及本地路由是否存在元数据路由条目,常规OpenStack部署会默认配置该规则。
若元数据中未返回项目名称,可拿到项目ID后在OpenStack控制节点执行命令获取名称:openstack project show <替换为实际project_id> -c name -f value
内容的提问来源于stack exchange,提问作者Divyanshu Sharma
相关产品推荐
相关产品推荐

