CentOS7.8使用devstack快速搭建openstack云平台

学而时习之,不亦说乎。云计算架构是目前为止的终级架构,国内很多规模企业都有自己的云计算平台,云计算平台以化整为零的方式实现各种资源的充分利用。Iaas是云计算的基础,很多人认为Iaas就是虚拟化,这么说是片面的,Iaas是基于虚拟化的,但是功能要丰富得多,最主要的是比虚拟化多出两点,一个是弹性扩容,一个是资源利用监控计费,这两个特性也给Iaas提供了很大的商用空间,今天先总结一下openstack环境的快速搭建。

openstack在国内还是很火的,很多云服务商都是基于他做二次开发的,优点是体系完善,计算、对象存储 、块存储、镜像存储、计费系统、管理界面都很全,网上介绍有很多,不列举了;缺点是生产环境部署复杂,刚才说的那些都要独立部署,依赖和兼容问题很多,多的连官方自己都烦,就有了devstack,专门为开发测试环境快速搭建提供的一个集成安装项目,安装简单,快速成型,可以让开发人员快速搭建云平台使用、调试、改善其功能,非常方便。

本次记录CentOS7.8下安装devstack,虚拟机自己准备,官网上的安装步骤非常简单,先在系统中创建个用户,再把代码从git上拉下来,改个配置文件local.conf,最后到安装目录下执行./stack.sh,就完了,是不是很简单,在墙外的确就是这么简单,在国内你就慢慢等吧,估计最后等到的都是连接超时或者依赖没有加载上,而且国内镜像地址一直在变,比如我在安装的时候正好赶上阿里镜像在发生迁移。CentOS7.7以下的镜像都不能用了,所以找对资源非常重要。

在国内安装要先修改yum安装源和pip安装源才能保证安装成功,我们先按顺序来安装

1.准备工作

1.1关闭防火墙

vi /etc/selinux/config

SELINUX=disabled

setenforce 0

systemctl stop firewalld.service

systemctl status firewalld.service

1.2修改国内镜像源

vi  /etc/yum.repos.d/local.repo

[openstack]
name=openstack
baseurl=https://mirrors.aliyun.com/centos/7.8.2003/cloud/x86_64/openstack-queens/
enabled=1
gpgcheck=0
[centos7]
name=centos7
baseurl=https://mirrors.aliyun.com/centos/7.8.2003/os/x86_64/
enabled=1
gpgcheck=0

yum clean all

yum makecache

阿里云的镜像源自己根据你的系统版本自己找去,一定要对应上。

改好后一定要重新生成缓存。

1.3下载git

yum install -y git

1.4安装rhel-epel、python-pip

yum install -y epel-release
yum install -y python-pip

2.创建用户

$ useradd -s /bin/bash -d /opt/stack -m stack
$ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
$ chown -R stack:stack /opt

创建用户并赋予用户权限。

3.拉代码

$ cd /opt/stack
$ git clone https://git.openstack.org/openstack-dev/devstack --branch stable/queens
$ cd devstack
$ su - stack

 在/opt目录下拉代码,拉代码时一定要注意分支,尽量不要拉master的,有问题,你可以到https://opendev.org/openstack/devstack这里查看有哪些分支,我选择了queens,因为它是目前最稳定的版本,后面的配置你在国内镜像库中也要找到这个版本。

这里需要说明的是devstack只能在stack用户下安装成功。

4.修改配置文件

4.1修改local.conf

/opt/stack/devstack/目录下是没有local.conf文件的,复制/opt/stack/devstack/samples里面的local.conf到/opt/stack/devstack/,

cd /opt/stack/devstack/samples

cp local.conf ../

vi /opt/stack/devstack/local.conf

做如下修改:

[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS=http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
HOST_IP=192.168.100.181
SERVICE_IP_VERSION=4
FIXED_RANGE=10.0.0.0/24
FLOATING_RANGE=192.168.200.0/24
PUBLIC_INTERFACE=ens34
PUBLIC_NETWORK_GATEWAY=192.168.200.1
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering
enable_service neutron
enable_service placement-api 
enable_service placement-client

官网只配置了前4行,就是密码,其余的git仓库、镜像配置都要设成国内的,才不会出错。

4.2修改pip安装源

在root根目录下创建.pip目录,在创建pip.conf配置文件

cd ~

mkdir .pip

vi .pip/pip.conf

[global]
index-url = http://pypi.douban.com/simple/
[install]
trusted-host = pypi.douban.com

很多pip 元我都试过,阿里的,清华的,都没成功,只有豆瓣的成了。

5.启动devstack

cd /opt/stack/devstack

./stack.sh

这个过程相当长,不要中断,等待完成,过程中可能出现一些异常用以下方法解决:

1.pip版本问题

解决办法:

vi /opt/stack/devstack/tools/cap-pip.txt

修改为以下内容

pip!=8

 2.缺少依赖

net_mlx5: cannot load glue library: libibverbs.so.1: cannot open shared object file: No such file or directory
net_mlx5: cannot initialize PMD due to missing run-time dependency on rdma-core libraries (libibverbs, libmlx5)
PMD: net_mlx4: cannot load glue library: libibverbs.so.1: cannot open shared object file: No such file or directory
PMD: net_mlx4: cannot initialize PMD due to missing run-time dependency on rdma-core libraries (libibverbs, libmlx4)
net_mlx5: cannot load glue library: libibverbs.so.1: cannot open shared object file: No such file or directory
net_mlx5: cannot initialize PMD due to missing run-time dependency on rdma-core libraries (libibverbs, libmlx5)
PMD: net_mlx4: cannot load glue library: libibverbs.so.1: cannot open shared object file: No such file or directory
PMD: net_mlx4: cannot initialize PMD due to missing run-time dependency on rdma-core libraries (libibverbs, libmlx4)

解决办法:

sudo yum install -y libibverbs

 3.Cannot uninstall 'XXX'.

解决办法:

sudo pip install --ignore-installed XXX

在安装的过程中受网络影响很大,这里建议尽量能换成国内镜像源的地方最好都要换,能手动提前安装的包或者库最好提前安装,根据提示一个一个手动安装都能最终成功安装上,如果网络环境不好,需要反复执行./unstack.sh && ./clean.sh,再./stack.sh,否则会出现很多异常,如[ERROR] /opt/stack/devstack/lib/glance:364 g-api did not start。

见到到下面的内容,说明真正安装成功了。

CentOS7.8使用devstack快速搭建openstack云平台_第1张图片

上面提示了访问路径和用户账号密码。

接下来设置开机启动 

启动所有服务
sudo systemctl start devstack@*
关闭指定服务
sudo systemctl stop devstack@n-*

然后我们就可以愉快地玩耍了。

6.登录系统,开始使用

浏览器访问http://192.168.100.181/dashboard,就可以访问登录界面了

CentOS7.8使用devstack快速搭建openstack云平台_第2张图片

用admin账户登录,密码是secret,就可以进入系统了。

你可能感兴趣的:(云服务)