我是OpenStack的新手,我使用DevStack来配置一个多节点开发环境,目前是一个控制器和两个节点的复合体。我跟着official documentation并使用了official git repo的开发版DevStack。控制器设置在一个新的Ubuntu Server 16.04中。我使用here提供的一些脚本自动化了文档中描述的所有步骤。
问题是我的注册虚拟机映像没有出现在仪表板上。图像页面只是空的。当我安装单节点设置时,一切正常。
当我运行openstack image list
或glance image-list
时,在安装过程中注册的图像如下所示,但它不会出现在仪表板上。
----------------------------------------------------------
| ID | Name | Status |
----------------------------------------------------------
| f1db310f-56d6-4f38 | cirros-0.3.5-x86_64-disk | active |
----------------------------------------------------------
openstack --version
openstack 3.16.1
glance --version
一览无余2.12.1。
我已经google了很多但是没有任何线索。是否有任何特殊配置可以在多节点设置中使图像可用?谢谢。
更新1
我尝试使用glance image-update --visibility shared f1db310f-56d6-4f38-b5da-11a714203478
将图像设置为共享,然后使用命令openstack project list
将其添加到所有列出的项目(openstack image add project image_name project_name
),但它也不起作用。
更新2
我在source /opt/stack/devstack/openrc admin admin
文件中包含了命令~/.profile
,以便设置所有环境变量。它将用户名和项目名称定义为admin,但我已经尝试使用默认的演示项目和演示用户名。
脚本定义的所有env变量如下所示。
declare -x OS_AUTH_TYPE="password"
declare -x OS_AUTH_URL="http://10.105.0.40/identity"
declare -x OS_AUTH_VERSION="3"
declare -x OS_CACERT=""
declare -x OS_DOMAIN_NAME="Default"
declare -x OS_IDENTITY_API_VERSION="3"
declare -x OS_PASSWORD="stack"
declare -x OS_PROJECT_DOMAIN_ID="default"
declare -x OS_PROJECT_NAME="admin"
declare -x OS_REGION_NAME="RegionOne"
declare -x OS_TENANT_NAME="admin"
declare -x OS_USERNAME="admin"
declare -x OS_USER_DOMAIN_ID="default"
declare -x OS_USER_DOMAIN_NAME="Default"
declare -x OS_VOLUME_API_VERSION="3"
当我输入openstack domain list
时,我会得到以下域名列表。
----------------------------------------------------
| ID | Name | Enabled | Description |
----------------------------------------------------
| default | Default | True | The default domain |
----------------------------------------------------
如env变量所示,域被设置为默认域。
在查看了所有安装过程之后,问题是由于local.conf
文件中定义的浮动IP范围不正确。
必须将此类文件中的FLOATING_RANGE
变量定义为节点网络的子网。例如,我的控制器IP是10.105.0.40/24,而浮动IP范围是10.105.0.128/25。
我只是忘了改变FLOATING_RANGE
变量(我使用的是默认值,如here所示)。