1 前言

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


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

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

2 实验环境介绍

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

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

2.1 系统准备

2.2 逻辑拓扑图

3 开始部署

3.1 Linux系统环境配置

1)主机网卡配置


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

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

3)安装epel源

yum -y install epel-release

4)CentOS 部分常用软件安装

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

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

5)配置主机名及hosts文件

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

6)同步时间

[root@qll251 ~]# yum -y install ntp
[root@qll251 ~]# systemctl start ntpd
[root@qll251 ~]# systemctl enable ntpd

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

[root@qll251 ~]# mkdir ~/.pip
[root@qll251 ~]# vim ~/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

3.2 安装基础包和docker服务

1)安装基础包

yum -y install python-devel libffi-devel gcc openssl-devel  python-pip

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

3)安装docker-ce

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

4)指定docker 镜像加速器

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

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

5)设置docker volume卷挂载方式

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

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

6)重启使配置生效

systemctl daemon-reload
systemctl restart docker
systemctl enable docker

3.3 从github 获取Kolla和Kolla-Ansible

1)安装ansible

yum -y install ansible

2)下载kolla及kolla-ansible代码

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

3)手动安装kolla-ansible

python ~/kolla-ansible/setup.py install

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


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

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

执行:

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

5)安装kolla需要依赖包

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

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

requests 2.20.0 has requirement idna<2.8,>=2.5, but you'll have idna 2.4 which is incompatible

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

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

6)拷贝配置文件

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

配置文件解释:

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

  • multinode # 安装多节点OpenStack的ansible自动安装配置文件

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

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

6)生成随机密码

[root@qll251 ~]# kolla-genpwd

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

7)修改随机密码文件

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

8)修改globals.yml配置文件

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

3.4 开始部署OpenStack

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

ssh-keygen
ssh-copy-id root@192.168.1.251

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

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

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

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

[root@qll251 ~]# kolla-ansible -i /etc/kolla/all-in-one bootstrap-servers

执行结果如下:

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

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

执行结果如下:

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

5)拉取OpenStack镜像

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

我们看下它在执行什么

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

正在下载OpenStack镜像,等等哦

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

6)执行OpenStack部署

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

7)验证部署

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

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

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

我们看下该凭证:

4 登录OpenStack云平台

在浏览器中输入:http://192.168.1.251

用户名:admin

密码:123123

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

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

最后的话

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

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

干货 | 手把手教你搭建一套OpenStack云平台相关推荐

  1. 手把手带你去搭建一套OpenStack云平台

    1 前言 今天我们为一位朋友搭建一套OpenStack云平台. 我们使用Kolla部署stein版本的OpenStack云平台. kolla是用于自动化部署OpenStack的一个项目,它基于dock ...

  2. 手把手教您搭建 AWS 大数据云平台

    随着物联网与云平台的成熟,越来越多的企业选择在云端搭建数据平台.这次 Chat 的目的是通过实战,让大家更好的理解 AWS 大数据平台的架构与功能.主要内容包括: 如何利用 CouldWatch 与 ...

  3. 手把手教你搭建 ELK 实时日志分析平台

    来自:武培轩 本篇文章主要是手把手教你搭建 ELK 实时日志分析平台,那么,ELK 到底是什么呢? ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch.Logstash ...

  4. 30分钟快速搭建一套私有云平台

    本文介绍一种基于starvcenter快速搭建私有云平台的方法,实现30分钟内完成一套私有云平台的部署. 整个安装过程真的太简单了,仅需4个步骤.话不多说,上干货~ 1.下载starvcenter的i ...

  5. 阿里云服务器使用教程手把手教你搭建网站by阿里云服务器

    阿里云服务器使用教程是用户比较关心的问题,其实很简单,阿里云百科告诉大家如何使用云服务器ECS,如何使用阿里云服务器搭建网站,从服务器购买到网站上线一站式教程: 阿里云服务器购买方面,阿里云百科建议大 ...

  6. 手把手教你在百度飞桨云平台下运行PPYOLO-E,训练COCO数据集

    百度ai云平台:飞桨AI Studio - 人工智能学习实训社区 (baidu.com) 首先感谢百度提供这样一个云平台 .ps 每天会送8个算力也就是每天可以使用8个小时V100-32G 完成任务还 ...

  7. 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...

    本文你将学到什么? 本文将以原理+实战的方式,首先对"微服务"相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 项目完整源码下载 https://github ...

  8. 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)......

    手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 原文: 手把手0基础项目实战(一)--教你搭建一套可自动化构 ...

  9. 手把手教你搭建OpenStack云平台(超级详细)

    一.前言 OpenStack云平台搭建需要两个节点,一个是controller(控制节点),另一个是compute(计算节点). 控制节点(controller)规划如下: 一块200G的硬盘.两块网 ...

最新文章

  1. mysql 设置表空间位置_如何修改表空间数据文件路径
  2. python 栈道实现
  3. 机器学习入门学习笔记:(3.2)ID3决策树程序实现
  4. Cambridge center for digital innovation at judge business school
  5. IDEA修改Servlet的代码生成模板
  6. 怎么设置某个用户生成hdfs文件的权限_HDFS简明入门教程
  7. AC日记——字符替换 openjudge 1.7 08
  8. leetcode 796. Rotate String | 796. 旋转字符串(KMP)
  9. python 购物车程序_python_购物车程序
  10. 7 种分布式全局 ID 生成策略,你更爱哪种?
  11. 5月7日MySQL 学习
  12. Java垃圾回收机制分析
  13. 如何使用smobiler的listview控件实现个人信息修改
  14. 李炎恢PHP高端培训视频教程
  15. OKR案例: 回顾/复盘会流程模板
  16. Python爬网易云音乐的那些事
  17. 因果卷积(causal)与扩展卷积(dilated)
  18. Jmeter单用户测试与多用户测试
  19. docker环境下orientdb的数据库导入与导出
  20. VISA招商银行全币种国际芯片卡

热门文章

  1. easypermission坑_Android 权限管理(原生、EasyPermissions、RxPermissions)-阿里云开发者社区...
  2. 爬取我爱我家租房信息时 问题总结(付代码)
  3. 用python编写名片_python实现简单名片管理系统
  4. HFS+ vs APFS
  5. VisualStudio20008快捷键大全
  6. 云渲染那个好?云渲染测评终极章。市面上在的都在了!
  7. matlab算sma,[转载]通达信公式SMA函数计算方式的问题
  8. Gstreamer/tools: gst-launch gst-inspect 用法示例
  9. 力天创见智慧商业解决方案
  10. 软件工程应用与实践(1)——项目简介和小组分工