安装 OpenStack 基于 Web 的管理控制台

OpenStack 基于 Web 的管理控制台 OpenStack Dashboard 是用 Python 和 Django 框架写的,部署到生产环境比较麻烦,没有基于 PHP 的 web 程序那么直观,不过 OpenStack Dashboard 项目正在快速开发中,还不稳定,一般不会用到生产环境,所以想试玩的话用 Django 自带的 web server 就可以了。如果想部署到生产环境建议用 apache + mod_wsgi 的方式,这也是 django 官方建议部署 django app 的方式。

安装版本控制工具和 python 虚拟环境:

$ sudo apt-get install -y git bzr
$ sudo easy_install virtualenv

下载 openstack dashboard 源代码并运行 run_tests.sh:

$ git clone https://github.com/4P/openstack-dashboard.git
$ cd openstack-dashboard
$ sudo sh run_tests.sh

如果上面的最新 git 代码不好用,需要找旧版本的 openstack dashboard,需要使用 bzr 从 launchpad 下载(今年6月份 openstack dashboard 项目从 launchpad 移到 github)。最新的 64 版本使用了最新的 django 1.3,安装没问题但是访问的时候显示 ViewDoesNotExist 错误,所以 VPSee 建议使用旧的 46 版本(django 1.2.4):

$ bzr init-repo .
$ bzr branch lp:openstack-dashboard
$ cd openstack-dashboard
$ bzr revert -r 46
$ sudo sh run_tests.sh

安装脚本里用到了 git,如果你的网络环境需要代理才能上网的话需要配置一下 git 使用 http 代理服务器

对照 在 Ubuntu 上安装和配置 OpenStack Nova 一文并在 /home/vpsee/creds/novarc 文件里找到 NOVA_ACCESS_KEY, NOVA_SECRET_KEY 等相关信息填写以下参数:

$ vi openstack-dashboard/local/local_settings.py
...
NOVA_DEFAULT_ENDPOINT = 'http://172.16.39.111:8773/services/Cloud'
NOVA_DEFAULT_REGION = 'nova'
NOVA_ACCESS_KEY = '22781cf0-b8b6-44e8-86c8-baf8d3827662:mycloud'
NOVA_SECRET_KEY = '2dc4007f-3425-417b-a598-33a190d2f995'
NOVA_ADMIN_USER = 'vpsee'
NOVA_PROJECT = 'mycloud'
...

同步数据库的时候需要创建一个 superuser 访问 django web:

$ source .dashboard-venv/bin/activate

$ sudo tools/with_venv.sh dashboard/manage.py syncdb
Creating table auth_permission
...
Creating table registration_registrationprofile

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no):

$ sudo tools/with_venv.sh dashboard/manage.py runserver 172.16.39.111:8000
Validating models...
0 errors found

Django version 1.2.4, using settings 'dashboard.settings'
Development server is running at http://172.16.39.111:8000/
Quit the server with CONTROL-C.

现在打开浏览器输入 http://172.16.39.111:8000/ 就应该可以看到登录界面,输入刚才创建的 superuser 的用户名和密码后就可以进入控制台了。控制台的功能有限,没有命令行那么丰富,不过基本的创建、查看、关闭 instance 功能还是有的:

openstack dashboard

评论 (30 Comments)

  1. @vpsee,我在做sudo tools/with_venv.sh dashboard/manage.py syncdb后,提示输入用户和密码后,结果是:
    “> DEBUG:boto:Host: None
    > DEBUG:boto:establishing HTTP connection
    > DEBUG:boto:403 Forbidden
    >
    > Access was denied to this resource.

    vpsee老师,这里的账户是新创建的吗?

  2. @vpsee,dashboard搭建完成之后是不是就可以通过这个WEB Console进行对虚机的创建、删除、查看、启动、停止等操作呢?是否可以发表一篇关于Dashboard的一些介绍呢,呵呵,因为现在还没有在任何地方可以看到Dashboard的效果。

    thanks for Vspee teacher.

  3. @jankie
    openstack web 界面可以创建、启动、停止云虚拟机等操作。还可以管理 volumes,dashboard 没啥可介绍的阿,界面很简单,网上有一些视频你可以找找看。

  4. @vpsee,已在您的文档指导下完成了dashboardWEB console的配置,提示一下:sudo tools/with_venv.sdashboard/manage.py runserver 172.16.39.111:8000的.sdashboard应为 dashboard,:)其他OK。

    谢谢vpsee。

  5. @vpsee,再次感谢,现在我还没有部署nova-compute和虚机等等,所以在dashboard中还没有看到instance,请问,如果以后我有很多个nova-compute和虚机,是需要在dashboard中手工添加吗?还是说nova-compute节点和虚机会自动出现在实例里面呢?呵呵 :)

  6. @vpsee 有办法将 VNC console 弄出来么? Chrome 打开的时候显示 Loading, 界面出不来, firefox 也不行。
    非常简单的单机单节点结构,一个 project 对应一个 vlan-bridge-network,虚拟环境没有公网访问出口。

  7. @jankie
    不需要每次手动添加,登录 dashboard 后就会看见所有的 instances 和 images 等。

  8. 如何用openstack提供的API开发程序啊?就是openstack compute developer guide里提到的,怎么使用啊?? 谢谢楼主!

  9. @agent
    和开发一般的 python 程序一样,安装环境、导入 module 后就可以用 API 了。

  10. 我想问下自己怎么开发一个dashboard类似的界面?能提供点资料吗?谢谢~~

  11. Hi, vpsee,

    我在设置同步数据库设置super user的时候,设置错了,现在web页面无法登陆进去。有什么办法可以重来一遍吗?

  12. @newton
    到数据库里面手动改动密码试试。

  13. 同@newton,我在设置super user的时候设置错了。请问在数据库中如何修改密码?哪个表中存放用户名和密码?

  14. @vpsee
    我安装完web的控制台之后,一切都没问题,但当我把ssh断开重新链接以后,我的web服务启不来了.报错
    root@clc:~/openstack-dashboard/openstack-dashboard/openstack-dashboard/dashboard# ./manage.py runserver 172.10.30.1:8000
    Traceback (most recent call last):
    File “./manage.py”, line 2, in
    from django.core.management import execute_manager
    ImportError: No module named django.core.management

  15. 知道了是环境变量.我的错.这么棉线的问题没看到

  16. @vpsee 你好,请问我做到
    openstack-dashboard/openstack-dashboard$ sudo tools/with_venv.sh 这步的时候出现下面的问题?请问是什么情况?
    求帮忙解决一下。
    (.dashboard-venv)chen@ubuntu:~/openstack-dashboard/openstack-dashboard$ sudo tools/with_venv.sh dashboard/manage.py syncdb
    [sudo] password for chen:
    ERROR:root:No module named local.local_settings
    Traceback (most recent call last):
    File “/home/chen/openstack-dashboard/openstack-dashboard/dashboard/settings.py”, line 123, in
    from local.local_settings import *
    ImportError: No module named local.local_settings
    ERROR:root:No module named local.local_settings
    Traceback (most recent call last):
    File “/home/chen/openstack-dashboard/openstack-dashboard/dashboard/../dashboard/settings.py”, line 123, in
    from local.local_settings import *
    ImportError: No module named local.local_settings
    Error: No module named django_openstack.templatetags

  17. @babe 我也遇到你那种错误了

  18. (.dashboard-venv)chen@ubuntu:~/openstack-dashboard/openstack-dashboard$ sudo tools/with_venv.sh dashboard/manage.py syncdb
    [sudo] password for chen:
    ERROR:root:No module named local.local_settings
    Traceback (most recent call last):
    File “/home/chen/openstack-dashboard/openstack-dashboard/dashboard/settings.py”, line 123, in
    from local.local_settings import *
    ImportError: No module named local.local_settings
    ERROR:root:No module named local.local_settings
    Traceback (most recent call last):
    File “/home/chen/openstack-dashboard/openstack-dashboard/dashboard/../dashboard/settings.py”, line 123, in
    from local.local_settings import *
    ImportError: No module named local.local_settings
    Error: No module named django_openstack.templatetags
    有哪位同学碰到过这样的问题,可以给个参考的答案吗?

  19. 您好,我安装控制台的时候提示以下信息,管理页面登录进去也不知道用户名和密码:
    # tools/with_venv.sh dashboard/manage.py syncdb
    INFO:root:Running in debug mode without debug_toolbar.
    INFO:root:Running in debug mode without debug_toolbar.
    Creating tables …
    Installing custom SQL …
    Installing indexes …
    No fixtures found.

  20. @vpsee 你好,请问一下,装openstack-dashboard之前要装keystone么??

  21. @teacherzhu
    不是必须的,可以不装 keystone

  22. @vpsee
    你好,登陆dashboard时候,如下错误,请教如何解决,十分感谢!
    Unexpected error: list indices must be integers, not str

  23. @xuming
    这个错误应该出现在diablo版本的dashboard。这个版本是出错的,当时我也碰上一样的问题。后来下载yz大侠的dashaboard版本就好了。我给出地址:
    60.12.206.113网站的dashboard包:diablo-release.tar.bz2

  24. @juno
    感谢~ 可是您给的60.12.206.113这个地址用IE打开一片空白,请问应该用什么方式下载,多谢!

  25. Creating tables …
    Installing custom SQL …
    Installing indexes …
    No fixtures found.
    请问dashboard登陆问题怎么解决的啊?
    请加我QQ:437790370
    谢谢!

  26. @juno
    dashboard已安装完成,但发现用图形化解决上传了Image文件,创建实例后,instance的状态一直处于build,卡在build,不知道是何种原因,求解!

  27. 有没有最新的git clone下来的版本的安装方式啊?我用的最新的git下来的安装,都很容易出错啊~

  28. 楼上各位谁有最新的安装方式,给个链接啊

  29. 我点击创建端口的时候提示
    /opt/stack/horizon/openstack-dashboard/dashboard/templates/nova/networks/ports/_create.html: No such file or directory
    发现没有ports目录是怎么回事呢?

  30. 我遇到和smallfish 一样的问题 请问怎么解决呢?QQ1601026644

发表评论