解决方案

干货 - 手把手教你搭建一套OpenStack云平台

seo靠我 2023-09-25 09:57:37

1 前言

今天我们为一位朋友搭建一套OpenStack云平台。

我们使用Kolla部署stein版本的OpenStack云平台。

kolla是用于自动化部署OpenStack的一个项目,它基于docker和SEO靠我ansible来实现;docker主要负责镜像制作、容器管理。而ansible主要负责环境的部署和管理。

2 实验环境介绍

由于我个人笔记本性能有限,因此本次实验采用all-in-one模式部署,即所有服SEO靠我务都部署在一台主机上。

其实只要all-in-one模式熟练部署,多节点部署上手很快的

2.1 系统准备 2.2 逻辑拓扑图

3 开始部署

3.1 Linux系统环境配置

1)主机网卡配置

2)SEO靠我关闭防火墙、selinux及libvirtd服务

[root@qll251 ~]# systemctl stop firewalld [root@qll251 ~]# systemctlSEO靠我 disable firewalld[root@qll251 ~]# vim /etc/selinux/config 改:SELINUX=enforcing 为:SELSEO靠我INUX=disabled[root@qll251 ~]# systemctl stop libvirtd.service [root@qll251 ~]# systemctl disSEO靠我able libvirtd.service[root@qll251 ~]# reboot #重启生效

3)安装epel源

yum -y install epel-release

4)CentOS 部分常用软SEO靠我件安装

yum install -y vim net-tools bash-completion-extras git

小提问:bash-completion-extras这个安装包有什么作用?

5)配置主SEO靠我机名及hosts文件

[root@qll251 ~]# hostname qll251 [root@qll251 ~]# echo "qll251" > /etc/hostname SEO靠我 [root@qll251 ~]# echo "192.168.1.251 qll251" >> /etc/hosts

6)同步时间

[root@qll251 ~]# yum -y instalSEO靠我l ntp [root@qll251 ~]# systemctl start ntpd [root@qll251 ~]# systemctl enable ntpd

7)SEO靠我配置 pip 镜像源,方便快速下载python库

[root@qll251 ~]# mkdir ~/.pip [root@qll251 ~]# vim ~/.pip/pip.conf SEO靠我 [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] SEO靠我 trusted-host=mirrors.aliyun.com 3.2 安装基础包和docker服务

1)安装基础包

yum -y install python-devel libffSEO靠我i-devel gcc openssl-devel python-pip

2)升级pip版本,不然后期安装会有报警

3)安装docker-ce

安装依赖包 yum -y install yuSEO靠我m-utils device-mapper-persistent-data lvm2 添加docker-ce yum源文件 yum-config-manager --SEO靠我add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装docker-ce SEO靠我 yum -y install docker-ce 启动docker服务 systemctl start docker systemctl enabSEO靠我le docker

4)指定docker 镜像加速器

[root@qll251 ~]# vim /etc/docker/daemon.json添加如下内容: {"registry-mirrSEO靠我ors": ["https://0i6rnnzu.mirror.aliyuncs.com"] }

该加速器地址是我在阿里云上申请的,大家可直接使用

5)设置docker volume卷挂载SEO靠我方式

[root@qll251 ~]# mkdir /etc/systemd/system/docker.service.d [root@qll251 ~]# vim /etc/systSEO靠我emd/system/docker.service.d/kolla.conf# 添加如下内容 [Service] MountFlags=shared

解释一下:MountSEO靠我Flags=shared,表示当宿主机新增分区时,docker服务无需重启即可识别。添加此参数后期OpenStack中使用cinder存储时,新加磁盘也比较方便

6)重启使配置生效

systemctl dSEO靠我aemon-reload systemctl restart docker systemctl enable docker 3.3 从github 获SEO靠我取Kolla和Kolla-Ansible

1)安装ansible

yum -y install ansible

2)下载kolla及kolla-ansible代码

git clone https://githSEO靠我ub.com/openstack/kolla -b stable/stein git clone https://github.com/openstack/kolla-ansible SEO靠我-b stable/stein# 如果已有镜像,只执行第二步即可

3)手动安装kolla-ansible

python ~/kolla-ansible/setup.py install

4)安装kolla-SEO靠我ansible需要依赖包

[root@qll251 ~]# pip install -r /root/kolla-ansible/requirements.txt

如果出现此报错,我们强制更新即可;

执行:SEO靠我

[root@qll251 ~]# pip install --ignore-installed PyYAML

5)安装kolla需要依赖包

[root@qll251 ~]# pip install -r SEO靠我/root/kolla/requirements.txt

注意:如果出现类似如下错误:

requests 2.20.0 has requirement idna<2.8,>=2.5, but youll SEO靠我have idna 2.4 which is incompatible

同样,强制更新requets库即可;

[root@qll251 ~]# pip install --ignore-installedSEO靠我 requests

6)拷贝配置文件

[root@qll251 ~]# cd ~/kolla-ansible/ [root@qll251 kolla-ansible]# cp -r ./eSEO靠我tc/kolla/* /etc/kolla/ [root@qll251 kolla-ansible]# cp ./ansible/inventory/* /etc/kolla/#看下我SEO靠我们都拷贝了哪些文件 [root@qll251 ~]# ls /etc/kolla/ all-in-one globals.yml multinode passwordsSEO靠我.yml [root@qll251 ~]#

配置文件解释:

all-in-one #安装单节点OpenStack的ansible自动安装配置文件

multinode # 安装多节点OpenSSEO靠我tack的ansible自动安装配置文件

globals.yml # 部署OpenStack的自定义配置文件

passwords.yml #存放OpenStack各个服务的密码

6)生成随机密码

[root@SEO靠我qll251 ~]# kolla-genpwd

使用kolla提供的密码生成工具自动生成OpenStack各服务的密码,如果密码不填充,后面的部署环境检查时不会通过的。

7)修改随机密码文件

# 为了方便登SEO靠我录Dashboard,我们将密码修改为123123 [root@qll251 ~]# vim /etc/kolla/passwords.yml165 keystone_admin_paSEO靠我ssword: 123123

8)修改globals.yml配置文件

[root@qll251 ~]# vim /etc/kolla/globals.yml # 指定镜像的系统版本15 kSEO靠我olla_base_distro: "centos" # 指定安装方式18 kolla_install_type: "binary" # 指定安装stein版本的OpeSEO靠我nStack21 openstack_release: "stein" # 本次实验采用all-in-one模式,未启用高可用。填写宿主机IP即可31 kolla_internal_vSEO靠我ip_address: "192.168.1.251" # OpenStack内部管理网络89 network_interface: "eth0" # Neutron外SEO靠我网网络 107 neutron_external_interface: "eth1" # 本次实验采用all-in-one模式,未启用高可用 192 eSEO靠我nable_haproxy: "no" 3.4 开始部署OpenStack

1)生成SSH Key,并授信本节点

ssh-keygen ssh-copy-id root@SEO靠我192.168.1.251

2)配置单节点all-in-one配置文件

[root@qll251 ~]# vim /etc/kolla/all-in-one # 将文件中所有的localhSEO靠我ost替换成qll251 :1,$s/localhost/qll251/# 去掉文件中所有包含“ansible_connection=local” :1,$s/ansiSEO靠我ble_connection=local//

其实如果是单节点部署,这个步骤是可选的。带大家过一遍配置文件吧

3)带有kolla的引导服务器部署依赖关系

[root@qll251 ~]# kolla-ansSEO靠我ible -i /etc/kolla/all-in-one bootstrap-servers

执行结果如下:

4)对主机执行预部署检查

[root@qll251 ~]# kolla-ansible -i SEO靠我/etc/kolla/all-in-one prechecks

执行结果如下:

其实如果能走到这一步,后面的实验基本就没啥问题了,加油!

5)拉取OpenStack镜像

[root@qll251 ~]# koSEO靠我lla-ansible -i /etc/kolla/all-in-one pull

我们看下它在执行什么

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FkBFhzT0-1SEO靠我587031174141)(https://imgkr.cn-bj.ufileos.com/8b766bc2-2152-4ce3-80b8-4f1184854628.png)]

正在下载OpenStacSEO靠我k镜像,等等哦

聪明的小伙伴会趁它在自动部署过程中,思考下当命令敲下去以后它都做了哪些操作

6)执行OpenStack部署

kolla-ansible -i /etc/kolla/all-in-one deSEO靠我ploy

7)验证部署

kolla-ansible -i /etc/kolla/all-in-one post-deploy

执行结果如下,则说明您的OpenStack环境已部署成功!CongratulatSEO靠我ions!

同时也生成了admin用户的凭证, 即/etc/kolla/admin-openrc.sh文件

我们看下该凭证:

4 登录OpenStack云平台

在浏览器中输入:http://192.168.1SEO靠我.251

用户名:admin

密码:123123

登录密码我们在passwords.ym中指定为123123,在实际生产环境中可不能设置这么简单哦。

到此已完成OpenStack云平台的部署,明天我们再来讨论SEO靠我下OpenStack 云平台基本使用方法及利用OpenStack客户端命令创建一台测试云主机。

最后的话

别看我搭建这么顺利呀,真到你部署了,可能会满屏报错哦。一定要细心,一不留神就会出现如下情况:

当然也SEO靠我不要有心里负担,以上报错基本都是不细心导致的,比如配置文件中多敲了一个空格或者中英符合复用等。要有信心并且细心哦,相信你可以的!

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2