利用devstack部署All in one OpenStack

本文提供了一步到位的DevStack搭建OpenStack环境指南,包括系统版本要求、使用git克隆代码、创建stack用户、设置代理、安装过程及常见问题解决等步骤,确保读者能够独立完成环境搭建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    DevStack我就不多介绍了,官网在这里:devstack.org。只是记一个流水账,从裸机开始记录一下devstack怎么搭建openstack。网上有很多这类的资料,官网上也有。但是总是不全面,这些资料中间总会少那么几步。我力争做到,按这篇博客做下来,不用再参考别的文档,就可以把环境搭建起来。

系统版本:fedora 20

一、用git clone devstack到本地

首先要安装git(说了一句废话。。。)。yum install git

建议用国内的镜像,比如网易的就不错,配置方式在这里:http://mirrors.163.com/.help/fedora.html

然后克隆devstack到本地:git clone https://github.com/openstack-dev/devstack.git(需要注意的是,不要克隆到root文件夹里,不然只有会有好多权限问题,克隆到home下最好,我是以root用户搞的,如果你没有以root登陆,应该没有这个问题)

一下这两步是为了在juno版本上搭建,如果想在master分支上搭建,就不用做这两步了:

切换分支:git checkout stable/juno

二、创建stack用户(这一步是网上的资料几乎都没有提到的,但是必须要做的)

克隆完成后,克隆下来的代码就在本目录的devstack文件夹下面了

用DevStack自带的脚本创建stack用户,脚本的路径在./devstack/tools/create-stack-user.sh

将devstack文件夹下所有的文件的所有权赋给stack用户:chown -R stack:stack devstack

给所有用户读写权限:chmod -R 777 devstack,我在这里偷了个懒,用了777权限。


三、设置代理(如果你的网络有够NB,就无视这一节吧)

部署的过程中,要从github上下载所有的OpenStack代码,速度会非常慢,所以我搞了个goagent的代理,具体怎么设置请参考:https://github.com/goagent/goagent

部署好goagent以后,用export http_proxy=http://127.0.0.1:8087来设置代理

然后打开devstack目录下面的stackrc找到这一行:# Base GIT Repo URL,把后面的git://改成http://

四、开始安装

切换当前用户为stack:su stack

运行devstack下面的stack.sh开始安装

按照提示输入配置信息就行了

安装的过程中回报一些错误,根据实际打出的log来解决就行了,一下是我遇到的一些错误:

  • 报Python的某一个命令没找到,或者版本低,或者由于网络超时下载失败。那么就用pip install这个命令安装就行了,如果要更新,则加上--upgrade这个参数
  • clone的过程中报超时,手动运行一下clone命令就行了。再次运行stack不会重新clone

行了,做完以上这些,如果你的RP一直不错的话,喝杯茶,洗个澡,过上一个小时再来看看结果吧。如果平时积怨太多,不好意思中途会时不时的报错,不过错误的log还是蛮详尽的,根据log排查就行了。我所遇到的基本上就是下载超时,更新失败这些的,手动下载安装、更新以后,重新运行stack就行了。而我是属于那种平时积怨太多的,中间不停的有问题出现,不过还好都是以上两种。

五、一些小窍门

在devstack/sample文件夹下面有个local.conf文件,这里面相当于自定义的一些配置,改好以后重命名成localrc然后放到devstack下面就生效了。

其中HOST_IP这个属性可以不用写成IP(如果不设置,stack默认的是127.0.0.1),可是写成hostname,比如junohost,然后在/etc/hosts里面再把junohost设置成本机的IP。我这样做是为了在虚拟机上部署偷个懒,这样搞了以后,虚拟机的镜像可以直接给别人用,只需要把junohost对应的IP改一下就行,不用再费事部署了。好像有点devstack分发的赶脚,哈哈终于还是能和流行的概念沾点边啊!

六、注意事项

  • 重启机子以后,需要用losetup命令把对应的lvm设备重新建立一下,不然cinder是启动不起来的。然后用rejoin-stack.sh这个脚本就行了。
  • 我还遇到一个比较坑的就是,重启机器后,tgtd、MySQL和RabbitMQ这三个服务都没有自动启动,我也懒得查为啥了。每次开机手动启动。。。


希望看这篇博客的同学们一次成功啊!
<think>好的,用户想在Ubuntu上搭建All-in-OneOpenStack环境,我之前看过一些相关的引用资料,需要综合整理一下步骤。首先,根据引用[2]和[4],他们提到使用devstack工具来部署,这是个常用的方法,特别是对于开发者来说。用户需要先准备虚拟机,确保内存和硬盘足够,至少8G内存和50G硬盘,这点要注意提醒用户,否则可能安装失败。 接下来是基础环境准备,操作系统方面推荐Ubuntu 16或更高版本。系统配置部分需要换源,包括apt-get和PyPI源,这样可以加快下载速度。引用[5]中提到安装pip并修改pip源,这一步很关键,否则依赖包下载可能会很慢或者出错。用户需要创建stack用户,并赋予sudo权限,这部分在引用[2]和[4]都有提到,必须按照步骤来,避免权限问题。 然后获取devstack的代码,创建local.conf配置文件,这个配置文件的内容需要正确,比如启用必要的服务,设置密码等。引用[4]里提到可以通过enable_plugin添加其他服务,但All-in-One可能默认就够了。运行stack.sh脚本时可能会遇到错误,需要提前提醒用户查看错误日志,引用[2]中的错误汇总可能有帮助,比如依赖缺失或网络问题。 验证部分,检查服务是否正常运行,使用Horizon dashboard登录,确认各个组件是否正常。常见错误方面,比如安装过程中断、依赖未安装、源配置错误等,需要指导用户如何排查,例如查看stack.sh.log,或者重新运行脚本。 还要注意是否需要安装Docker,引用[3]中的命令是添加Docker的GPG密钥,但OpenStack本身可能不依赖Docker,不过如果有相关服务可能需要。需要确认用户的需求,但根据问题,可能不需要涉及Docker。 最后,生成相关问题时要考虑用户可能遇到的后续问题,比如性能优化、网络配置、添加节点等,以及如何升级或卸载环境。确保用户按照步骤操作,并准备好应对可能出现的问题。</think>### Ubuntu上搭建All-in-One OpenStack环境的分步指南 #### 一、基础环境准备 1. **虚拟机配置** - 内存 ≥8GB,硬盘 ≥50GB(推荐SSD) - 操作系统:Ubuntu 16.04/18.04/20.04 LTS[^2][^4] 2. **系统换源配置** ```bash # 备份原文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 替换为阿里源(示例为Ubuntu 20.04) sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list sudo apt update ``` 3. **Python依赖源配置** ```bash mkdir ~/.pip cat > ~/.pip/pip.conf << EOF [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = pypi.tuna.tsinghua.edu.cn EOF ``` #### 二、创建专用部署用户 1. **创建stack用户** ```bash sudo useradd -s /bin/bash -d /opt/stack -m stack echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack sudo su - stack ``` #### 三、获取DevStack代码 ```bash git clone https://git.openstack.org/openstack-dev/devstack cd devstack ``` #### 四、配置local.conf文件 ```ini [[local|localrc]] # 基础配置 ADMIN_PASSWORD=secretpassword DATABASE_PASSWORD=secretpassword RABBIT_PASSWORD=secretpassword SERVICE_PASSWORD=secretpassword # 启用基础服务 ENABLED_SERVICES=key,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch,n-novnc,placement-api,placement-client # 网络配置(使用LinuxBridge) ENABLE_TENANT_VLANS=True Q_AGENT=linuxbridge ``` #### 五、执行自动化部署 ```bash # 启动部署(耗时约30-60分钟) ./stack.sh ``` > 注:首次运行会下载约2GB依赖,需稳定网络环境[^4] #### 六、结果验证 1. **服务状态检查** ```bash openstack compute service list openstack network agent list ``` 2. **访问Dashboard** 浏览器访问 `http://<服务器IP>/dashboard`,使用 `admin/secretpassword` 登录 #### 常见错误处理 | 错误类型 | 解决方案 | |-----------------------|------------------------------------------------------------------------| | 依赖下载超时 | 检查pip/apt源配置,切换至国内镜像源[^5] | | 内存不足导致进程终止 | 增加swap空间:`sudo dd if=/dev/zero of=/swapfile bs=1G count=4` | | 端口冲突 | 检查80/443/3306端口占用情况 | | 文件权限错误 | 确保所有操作在stack用户下执行,避免混用root权限[^2] |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值