安装OpenStack
最近因为课程需要安装OpenStack,现在就记录一下安装 OpenStack all-in-one 的方法和步骤。
因为仅仅为了做实验,权衡了各种安装方法后选择了使用DevStack。
如果您是在国外,或者装置在国外,或者您有特殊方法让您的装置出国,那么安装将会相当简单。
如果不是,那采取这种方法来安装的话会麻烦不少。
首先介绍一下所使用的环境。
作业系统方面所使用的是Ubuntu Server 20.04.4 LTS
,
将要安装 OpenStack 版本为 Zed
。
作业系统中需要预先安装好git
和pip
。
准备工作
如果装置在中国,
建议先更改DNS和让各种工具走代理。
更改DNS
Ubuntu Server 20.04 使用了netplan
,更改DNS需要修改netplan
相关的配置文件
※请按照实际情况修改为装置上所对应的文件名。
vim /etc/netplan/00-installer-config.yaml
然后在对应网卡上添加相关参数,修改完的文件看起来应该是这样。
network:
ethernets:
ens33:
dhcp4: true
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
version: 2
然后让systemd-resolved
不要使用127.0.0.53
进行解析。
ln -s -f /run/systemd/resolve/resolv.conf /etc/resolv.conf
使用代理
前提是您已施展了魔法。
首先是往系统添加HTTP_PROXY
和HTTPS_PROXY
。
假定魔法的IP位址为127.0.0.1
,连接埠为1080
。
export HTTP_PROXY="http://127.0.0.1:1080"
export HTTPS_PROXY="http://127.0.0.1:1080"
建议不要添加socks代理,因为加进去之后pip
有可能会出现问题。
接下来让git
走代理,执行以下指令:
git config --global http.proxy http://127.0.0.1:1080
然后让pip
也走代理,
pip
属实比较离谱。网上都说设定好了HTTP_PROXY
之后pip
自己会走代理。但是我看来看去都好像它好像都完全没有走代理。pip
如果想走代理的话,需要每次在指令后加--proxy
这个flag。pip
也不像git
那样能一行指令使它全部都走代理。
后来我想到了可以用alias
。
alias pip="pip --proxy http://127.0.0.1:1080"
alias pip3="pip3 --proxy http://127.0.0.1:1080"
至此,准备工作就完成了。
另外建议在此时先 take snapshot,以备不时之需。
开始安装
下面的步骤基本上都在DevStack的文档上复制粘贴就行。
以下是节选自文档,并翻译。
下载 DevStack
git clone https://opendev.org/openstack/devstack
cd devstack
devstack
这个repo中包含了安装OpenStack所需的脚本、模板和配置文件等。
创建local.conf
在devstack
的根目录下,创建local.conf
这个配置文件。
这个文件包含一些组件的密码。
将以下粘贴进去,其中ADMIN_PASSWORD
可以改成你自己的密码。
[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
万事俱备,开始安装!
./stack.sh
接下来,
请坐和放宽,执行此任务需要一定的时间。
海内存知己,天涯若比邻,请稍等……
DevStack
正在帮你搞定一切。
这通常不会太久。
它正在处理一些事情。
再等一下下就好了,请不要关闭电脑。
不巧的是,它花费的时间比通常要长。
……
滚回到以前的版本
【确定】【取消】
(((全部划掉
如果顺利的话,他就会显示这个,就是安装完成了。
This is your host IP address: 192.168.70.140
This is your host IPv6 address: ::1
Horizon is now available at http://192.168.70.140/dashboard
Keystone is serving at http://192.168.70.140/identity/
The default users are: admin and demo
The password: 114514
Services are running under systemd unit files.
For more information see:
https://docs.openstack.org/devstack/latest/systemd.html
DevStack Version: zed
Change: 48417ca241cacff8f4398910792489a59a359afb Merge "Drop centos 8 stream testing" 2022-04-26 19:57:12 +0000
OS Version: Ubuntu 20.04 focal
2022-04-27 00:56:28.051 | stack.sh completed in 1562 seconds.
如果你不幸出现问题需要滚回,那么,
请!
如果不想这么暴力的话,可以执行devstack
目录下的clean.sh
和unstack.sh
,然后再sudo rm -rf /opt/stack
,然后就可以重新来过了。
我在安装的时候遇到了各种各样的问题,
包括但不限于什么 sha256checksum fail,什么连接到github空路由、什么pip安装依赖fail,balabala的,基本上出现这种问题的原因都是没有留学,基本上检查一下你的电脑和里面的软件有没有成功留学,重新运行一下安装程序就OK。
ref:
DevStack - DevStack documentation
How to Set DNS Nameservers on Ubuntu 18.04
Ubuntu系统上systemd-resolved不使用127.0.0.53的方法
番外:下载和导入镜像
下载
OpenStack自带一个用于测试的CirrOS
。
如果想用其他的作业系统,除了自己制作镜像,还可以下载现成的。
OpenStack提供了一个列表,可以直接去下载。
比如说我现在想整一个debian
的。
点进去这个 Debian provides images for direct download,
然后找到你所需要的东西,比如说我现在需要这个.qcow2
格式的。
直接下载。
导入
下载完后,打开 OpenStack 的 dashboard.
左侧菜单依次选择 Project -> Compute -> Images
进入Image页面后,选择 Create Image
。
然后该选啥选啥。
最后点下面蓝色的Create Image
,然后坐和放宽等它上传完,就可以了。