安装 OpenStack 对新手来说是个痛苦的过程,尤其是 OpenStack 和它依赖的一些组件在快速发展中,经常出现这个版本 keystone 对不上那个版本 dashboard 类似的情况。如果只是想看看 OpenStack 的话,使用 DevStack 是个不错的办法。DevStack 实际上是个 shell 脚本,可以用来快速搭建 OpenStack 的运行和开发环境,特别适合 OpenStack 开发者下载最新的 OpenStack 代码后迅速在自己的笔记本上搭建一个开发环境出来。正如 DevStack 官方所强调的,DevStack 不适合用在生产环境。
Can I use DevStack for production? A: No. We mean it. Really. DevStack makes some implementation choices that are not appropriate for production deployments. We warned you!
使用 DevStack 脚本很简单,安装 git,然后下载 DevStack 代码到本地,运行 stack.sh 脚本依次设定 OpenStack 组件的密码,密码输入后 stack.sh 脚本会自动开始安装必要的软件包和库并下载最新的 OpenStack 及其组件代码,整个过程自动完成无需干预:
1. 安装git:
openstack@ubuntu:~$ sudo apt-get install git
2. 获取 devstack 脚本:
openstack@ubuntu:~$ git clone https://github.com/openstack-dev/devstack.git
Cloning into ‘devstack’…
remote: Reusing existing pack: 18079, done.
remote: Total 18079 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (18079/18079), 4.78 MiB | 16.00 KiB/s, done.
Resolving deltas: 100% (12385/12385), done.
Checking connectivity… done.
3. 切换到 OpenStack IceHouce 分支
openstack@ubuntu:~$ cd devstack/
openstack@ubuntu:~/devstack$
openstack@ubuntu:~/devstack$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/stable/havana
remotes/origin/stable/icehouse
openstack@ubuntu:~/devstack$openstack@ubuntu:~/devstack$ git checkout -b icehouse origin/stable/icehouse
Branch icehouse set up to track remote branch stable/icehouse from origin.
Switched to a new branch ‘icehouse’
openstack@ubuntu:~/devstack$ git branch -a
* icehouse
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/stable/havana
remotes/origin/stable/icehouse
openstack@ubuntu:~/devstack$
4. 执行:
openstack@ubuntu:~/devstack$ ./stack.sh
脚本执行全程只需要按照提示设置几个密码,其他无需干预。我没有读脚本的源码,但是根据执行过程的输出信息大致总结出了它的执行过程:
- 下载并安装 OpenStack 运行所需要的系统软件,大概包括一些 Python 的组件、MySQL、rabbitmq-server 等。
- 下载 OpenStack 组件,包括 nova 、keystone、glance、noVNC、horizon 等。
- 下载并安装 OpenStack 源码所依赖的 Python 库和框架 。
- 安装 OpenStack 各组件。
- 启动各项服务。
当然,在执行 DevStack 的 stack.sh 之前,用户也可以填写本地自己配置的文件名为 localrc 的配置文件,DevStack 在执行时会自动加载的。我在实验中使用的 localrc 文件请参考《DevStack localrc 配置文件》。
最后介绍一下如何重启 DevStack 中的服务,DevStack 没有自带的重启脚本,若是机器重启,OpenStack 的各项服务没办法自动启动。比较笨的办法是重新运行一次 DevStack 的 stack.sh,或者到安装目录下启动各个服务。好在有人写了 重启脚本。按照如下命令,下载并执行脚本即可:
openstack@ubuntu:~$ wget http://www.scalegrid.net/blog/wp-content/uploads/2012/06/restart_stack.txt
openstack@ubuntu:~$ mv ./restart_stack.txt ./restart_stack.sh
openstack@ubuntu:~$ chmod 775 ./restart_stack.sh
openstack@ubuntu:~$ ./restart_stack.sh
当然,如果选择重启后再次执行 stack.sh 脚本来重新部署 OpenStack 环境的话,我建议您在 localrc 配置文件中修改如下内容:
RECLONE = false
OFFLINE = true
相关日志:
转载请注明:爱开源 » 使用 DevStack 快速搭建 OpenStack 实验环境