OpenStack安装困难?那是你没用过Kolla!

OpenStack 因为架构复杂,配置较多,一向以安装部署过程困难闻名。虽然 OpenStack 社区前后涌现出了很多的自动化部署工具,但是对于普通用户,特别是新人来说,上手仍然有难度。

使用本文介绍的基于 Kolla-Ansible 构建的操作系统镜像,用户只需执行极少命令即可完成环境的部署。

安装 OpenStack 可能有多麻烦

略,懂得自然懂

这里给大家提供的是 Stein 版本,可以体验更多的新特性。

注意,本镜像完全基于开源版本构建,仅供学习参考。

安装 OpenStack 可以有多简单

下面给大家介绍的是基于 Kolla-Ansible 的容器化部署方式。

本安装方式具有的优点:

  • 从零启动
  • 离线安装
  • 极少命令
  • 组件可选
  • 装完即用
  • 轻松升级
关于 Kolla 的一些高级特性,如多节点并行安装,高可用部署,在线升级扩容等,因条件所限,本次无法展示。

准备一台机器

大部分人可能没有空闲的机器专门来安装 Linux 系统,这里我们使用虚拟机也可以完成安装。

选择一个适合你的系统的虚拟机管理软件即可:

  • VirtualBox (推荐)
  • VMWare
  • Hyper-V
  • 其它

下载 .iso 镜像文件

微信搜索并关注公众号 DavyCloud,或者扫描下面图中的二维码,获取下载链接

创建虚机

先配置两个网络:

  • 两个 host-only 的网络,
  • 其中一个网络的地址段设置为 10.10.10.1/24

VirtualBox_network.png

新建一个虚拟机,满足以下条件:

  • 内存 8GB
  • 启动盘选择 davycloud-openstack-stein.iso
  • 磁盘空间 >= 40GB
  • 两个网卡分别配置两个 host-only 的网络,
  • 第一块网卡的地址段对应到 10.10.10.1/24 那一个

VirtualBox_VM_Info.png

修改启动选项

进入引导菜单时,有两个选项:

  • 安装 Deploy 节点
  • 安装 Worker 节点 (默认)

使用方向键移动光标,选择第 1 个,按下回车键开始安装系统。

vm_boot_menu.png

为什么要把默认选项放在第 2 个?

因为部署节点只需要安装一个即可,而工作节点可能会有很多个。

系统进入自动安装流程,整个过程无需任何交互。系统安装完毕后会弹出光盘并自动重启。

第一次启动过程会比较耗时,请耐心等待。

配置修改

如果虚机的网络地址段按要求配置,对 OpenStack 的模块也没有什么特别要求,这里可以 不做任何改动,直接跳到下一步骤即可。

为了不让本文变得冗长,这里也不具体介绍修改配置的方法,仅简单说明相关情况。

All-In-One 安装场景默认安装 OpenStack 核心模块和公共组件,包括:

  • MySQL
  • RabbitMQ
  • Memcached
  • Keystone
  • Glance
  • Neutron
  • Nova
  • Heat

注意到核心模块里包含了初级用户平常比较少用的 Heat 服务,而比较常用的卷存储服务 Cinder 却没有作为核心模块包含在内。如果需要安装 Cinder,需要为其指定一个 backend,不同的存储方式可能还有其它额外的配置条件,这里先保持默认不安装。

同时注意,即使是 All-In-One 场景,默认也是启用了 HAProxy 和浮动 IP,也就是需要安装:

  • HAProxy
  • Keepalived

启用 HAProxy 不需要什么额外操作,唯一需要的就是多占用一个 IP 地址。启用浮动 IP 可以使得后续控制节点的横向扩展更简单。因此,除非确定就是一直作为单节点环境使用,否则推荐保留默认配置。

值得注意的是,在某些云环境下(比如 OpenStack),这个浮动地址可能会面临安全组的问题,需要一些额外的配置。后面有机会再详细说明。

命令三连:prechecks、deploy、post-deploy

使用用户名 kolla,密码 kollapass 登录系统,并切换到 root 用户:

$ sudo -s
# cd /root

下面的所有操作都使用 root 用户执行,全程只需要执行三个命令:

下面每个命令都是执行相应的 ansible playbook,所以屏幕会有大量打印。

安装前的环境检测,检查是否必要条件都已经满足

# kolla-ansible prechecks

开始安装,视机器性能和选择安装模块数量,20分钟到40分钟不等,耐心等待即可

# kolla-ansible deploy

安装后的一点点收尾工作

# kolla-ansible post-deploy

上面的命令执行完成后,会在 /etc/kolla 目录下生成 admin-openrc.sh 文件,其中包含了登录所需要的用户名和密码信息。

使用 openstack 命令

以前的 OpenStack 版本每个模块都提供自己的客户端命令,例如 novaglance等,现在基本都统一使用 openstack 命令。以前的命令有的还能用,比如 nova,有的已经不能用了,比如 keystone

要使用 openstack 命令,必须先要安装各模块的客户端包。而我们的宿主机系统里面只安装了 DockerAnsible。Kolla 构建的 docker 镜像中,已经在 openstack-base 这个基础镜像中安装了所有的客户端包,这意味着:

  1. 我们完全没有必要在宿主机单独安装客户端
  2. 进入任意一个 OpenStack 服务的容器里,都可以使用客户端

但是,每次手动敲命令进入容器里毕竟不够方便,所以我在镜像中内置了一个 bash 脚本,取名就叫 openstack,其中的内容是启动一个容器,使用方法和原本 openstack 命令一致:

# source /etc/kolla/admin-openrc.sh    <--仍然需要先导入环境变量
# openstack                 <-- 直接敲命令
(openstack) 

登录 horizon

因为随机生成的 admin 用户密码很长,VirtualBox 的控制台不支持复制,所以这时候你最好先找个 SSH 客户端登入虚拟机中把密码拷贝出来

horizon_login.png

开始体验

安装过程还有疑问的可以在 Bilibili 观看视频操作。

如果觉得文章不错,别忘了点赞和关注公众号,谢谢!

PS. 因为个人机器性能受限,后面我会把战场搬到 阿里云,不妨你也搞一台

你可能感兴趣的:(openstack,云计算,centos,运维,docker)