天天看点

OpenStack 入门体验OpenStack 入门体验

**

OpenStack 入门体验

**

技能目标:

了解云计算概念

了解 OpenStack

了解 OpenStack 的构成

会 OpenStack 单机环境一键部署

从控制台认识 OpenStack 各项功能

会通过 OpenStack 控制台创建云主机

**

云计算概述

1、什么是云计算

云计算(cloud computing)是一种基于网络的超级计算模式,基于用户的不同需求,提供所需的资源,包括计算资源、存储资源、网络资源等。云计算服务运行在若干台高性能物理服务器之上,提供每秒 10 万亿次的运算能力,可以用于模拟核爆炸、预测气候变化以及市

场发展趋势。

云计算有广义和狭义之分。

狭义的云计算是指通过网络按需向用户提供 IT 基础设施,包括硬件、平台和软件,提供资源的网络被称为“云”。在使用者看来,“云”中的资源是无限大的,无论需要多少资源,云都可以提供。而在云端,所有的资源都可以通过横向进行扩展,如同使用水电、煤气一样。以用电为例,如果用户自行发电,那么用户需要维护一台发电机,定期加油,出现问题需要维修。而如果使用公共电网,用户不需要知道发电厂在哪里、怎么发电等

问题,只需要按需付费使用就可以,多用多付,少用少付。在用户看来,电的资源是无限的。

广义的云计算是指服务的交付和使用模式,通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是 IT 和软件、互联网相关的,也可以是任意其他的服务。

云计算是一种模型,提供无论在何时何地都可以便捷获取所需资源的模型,并能够让用户根据需要快速创建应用,并且在不需要时进行资源释放。

现在云计算技术已经日渐成熟,很多企业已经拥有自己的私有云,而掌握这种技术的人才也更为抢手。目前,云计算使用最广泛的是开源项目 OpenStack。经过多个版本的开发更新,现在已经到 T 版。作为云计算项目之一的 OpenStack 也受到各个企业的青睐,成为

大家搭建私有云的首选。

2、云计算的服务模型

云计算模型中有 IaaS(Infrastructure as a Service,基础架构即服务)、PaaS(Platformas a Service,平台即服务)、SaaS(Software as a Service,软件即服务)三种基本服务模型。

1.IaaS

IaaS 提供最底层的 IT 基础设施服务,包括处理能力、存储空间、网络资源等。用户可以从中获取硬件或者虚拟硬件资源(包括裸机或者虚拟机),之后可以给申请到的资源安装操作系统和其他应用程序。一般面向的对象是 IT 管理人员。

2.PaaS

PaaS 是把已经安装好开发环境的系统平台作为一种服务通过互联网提供给用户。用户可以在上面安装其他应用程序,但不能修改已经安装好的操作系统和运行环境。一般面向的对象是开发人员,需要了解平台提供环境下的应用开发和部署。

3.SaaS

SaaS 可直接通过互联网为用户提供软件和应用程序等服务。用户可以通过租赁的方式获取安装在厂商或者服务供应商那里的软件。一般面向的对象是普通用户,最常见的模式是提供给用户一组账号和密码。

**

OpenStack 概述

1. OpenStack 起源

OpenStack 是 Rackspace(一家美国的云计算厂商)和美国国家航空航天局(National Aeronautics and Space Administration,简称 NASA)在 2010 年 7 月共同发起

的项目。由 Rackspace 贡献存储源码(Swift)、NASA 贡献计算源码(Nova)。

2. 什么是 OpenStack

OpenStack 是一个通过数据中心控制计算资源、存储资源和网络资源的云平台。同时它又是一款开源软件,以 Apache 许可证授权的自由软件和开放源代码项目,支持所有类型的云环境。OpenStack 的目标是提供简单实施、可扩展以及丰富功能集的云产品,来自全世界的云计算专家共同维护该云项目。OpenStack 通过多种补充服务提供了 IaaS 解决方案,每一种服务均提供了相应的应用程序接口(Application Programming Interface,简 称 API),以促进各组件之间的整合。

OpenStack 被用来提供公有云以及私有云的建设以及管理。作为一个开源项目,其社区规模涵盖 130 家企业以及 1350 位开发人员。这些机构与个人都将 OpenStack 作为 IaaS资源的通用前端。

OpenStack 覆盖了网络、虚拟化、操作系统、服务器等各个方面。2019 年 10 月OpenStack 发布了最新版本 Train。一般情况下,OpenStack 每半年左右更新一次版本。表中列出了 OpenStack 常见的 8 个核心项目(即 OpenStack 服务)。

OpenStack 入门体验OpenStack 入门体验
OpenStack 入门体验OpenStack 入门体验

**

OpenStack 一键部署

**

1、环境介绍

本案例需要提前部署一台新安装操作系统的主机,要求能访问互联网,主机的系统只需采用最小化方式安装。若通过 VMware 等虚拟机软件实现,网络采用桥接模式。本章使用操作系统为 CentOS 7.3 的主机。下表是安装部署 OpenStack 环境的硬件设备最低配置要求。

OpenStack 入门体验OpenStack 入门体验

具体的案例环境如表

OpenStack 入门体验OpenStack 入门体验

2. 实验需求

后续实验步骤用于实现以下需求:

(1)使用 packstack 一键部署 OpenStack。

(2)创建云主机(OpenStack 中的虚拟机)。

3. 实现思路

案例的实现思路大致如下:

(1)安装前的准备工作。

(2)使用 packstack 一键部署 OpenStack。

(3)通过 Dashboard 体验 OpenStack 功能。

在线安装前准备工作

正式部署 OpenStack 之前,首先要准备如下环境。

1. 准备虚拟机

实验所需虚拟机可以通过 VMware 等软件实现。虚拟机需要配置静态 IP 地址、网关及 DNS 参数,并测试网络连通性(具体过程略)。不过在配置 IP 地址的时候不

要有“DOMAIN=x.x.x.x”这一行,因为这会影响 nova 配置文件内 host 的配置项,从而导致可用域不可用,无法创建虚拟机。后面离线部署也要注意此问题。

2.修改主机名

[[email protected] ~]# hostname openstack

[[email protected] ~]# bash

[[email protected] ~]#

3.更新系统并安装常用软件

[[email protected] ~]# yum -y update

[[email protected] ~]# yum -y install vim wget net-tools lrzsz

4.关闭防火墙并取消开机启动

[[email protected] ~]# systemctl stop firewalld

[[email protected] ~]# systemctl disable firewalld

5. 禁用 NetworkManager

[[email protected] ~]# systemctl stop NetworkManager

[[email protected] ~]# systemctl disable NetworkManager

6.禁用 Selinux

[[email protected] ~]# vim /etc/sysconfig/selinux

OpenStack 入门体验OpenStack 入门体验

7.添加 hosts 绑定

[[email protected] ~]# vim /etc/hosts

文件末尾添加

192.168.10.101 openstack

//如果不绑 host,在创建云主机之后无法通过控制台方式访问云主机

[[email protected] ~]# reboot // 重启服务器

**

使用 packstack 一键在线部署 OpenStack

完成环境准备之后,通过 packstack 工具部署 OpenStack。packstack 是自动部署 OpenStack 的工具,通过它可以帮助管理员完成 OpenStack 的自动部署。

首 先 通 过 YUM 源 安 装 packstack 工 具 , 然 后 利 用 packstack 工 具 一 键 部 署OpenStack,具体操作步骤如下所示。

1. Train 版 YUM 源安装

最小化安装 CentOS 7.3 的操作系统执行 update 升级之后,操作系统就会被升级到 CentOS 7.7 版本。系统默认会提供 CentOS 的官方 YUM 源,在源中包含了目

前支持的 OpenStack 四个版本,分别是:Queens、Rocky、Stein、Train。本案例选择安装 Train 版本。

[[email protected] ~]# yum install -y centos-release-openstack-train

Train 版本的 OpenStack 安装源部署完成之后,在/etc/yum.repos.d/目录下会自动生成 YUM 配置文件。

2.Packstack 软件包安装

完成 YUM 源配置之后,通过 YUM 安装 openstack-packstack 软件包。

[[email protected] ~]# yum install -y openstack-packstack

3.Packstack 一键部署 OpenStack

管理员只需在控制台上输入一条命令,所有的工作皆由 packstack 自动完成,packstack 工具会将所有的 OpenStack 组件部署到同一台服务器中。在实际工作中,考虑到负载分担以及冗余,建议将 OpenStack 组件分别部署到不同的服务器中,请留意后续章节关于 OpenStack 多节点安装部分内容。OpenStack 安装只需执行以下命令即可。当界面中出现“successfully”时,说明OpenStack 安装成功。

[[email protected] ~]# packstack --allinone

OpenStack 入门体验OpenStack 入门体验

上图错误是因为 leatherman给升级成新版本了,而我的系统时Centos7.8的只支持1.3版本的所以需要回滚降级到1.3版本的

[[email protected] ~]# rpm -qa |grep leatherman

leatherman-1.10.0-1.el7.x86_64

//可以看到的是现在版本为1.10了说明已经升级了

[[email protected] ~]# yum downgrade leatherman

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

  • base: mirrors.aliyun.com
  • centos-ceph-nautilus: mirrors.163.com
  • centos-nfs-ganesha28: mirrors.163.com
  • centos-openstack-train: mirrors.163.com
  • centos-qemu-ev: mirrors.163.com
  • extras: mirrors.aliyun.com
  • updates: mirrors.aliyun.com

    正在解决依赖关系

    –> 正在检查事务

    —> 软件包 leatherman.x86_64.0.1.3.0-9.el7 将被 降级

    –> 正在处理依赖关系 libboost_log.so.1.59.0()(64bit),它被软件包 leatherman-1.3.0-9.el7.x86_64 需要

    –> 正在处理依赖关系 libboost_log_setup.so.1.59.0()(64bit),它被软件包 leatherman-1.3.0-9.el7.x86_64 需要

    —> 软件包 leatherman.x86_64.0.1.10.0-1.el7 将被 删除

    –> 正在检查事务

    —> 软件包 boost159-log.x86_64.0.1.59.0-2.el7.1 将被 安装

    –> 解决依赖关系完成

    …省略部分内容

删除:leatherman.x86_64 0:1.10.0-1.el7

已安装:

leatherman.x86_64 0:1.3.0-9.el7

作为依赖被安装:

boost159-log.x86_64 0:1.59.0-2.el7.1

完毕!

[[email protected] ~]# rpm -qa |grep leatherman

leatherman-1.3.0-9.el7.x86_64

//已经降级版本为1.3的版本了

[[email protected] ~]# packstack --allinone

//降级后在安装一次

Welcome to the Packstack setup utility

The installation log file is available at: /var/tmp/packstack/20210402-151801-VVgtnd/openstack-setup.log

Installing:

Clean Up [ DONE ]

Discovering ip protocol version [ DONE ]

Setting up ssh keys [ DONE ]

Preparing servers [ DONE ]

Pre installing Puppet and discovering hosts’ details [ DONE ]

Preparing pre-install entries [ DONE ]

Setting up CACERT [ DONE ]

Preparing AMQP entries [ DONE ]

Preparing MariaDB entries [ DONE ]

Fixing Keystone LDAP config parameters to be undef if empty[ DONE ]

Preparing Keystone entries [ DONE ]

Preparing Glance entries [ DONE ]

Checking if the Cinder server has a cinder-volumes vg[ DONE ]

Preparing Cinder entries [ DONE ]

Preparing Nova API entries [ DONE ]

Creating ssh keys for Nova migration [ DONE ]

Gathering ssh host keys for Nova migration [ DONE ]

Preparing Nova Compute entries [ DONE ]

Preparing Nova Scheduler entries [ DONE ]

Preparing Nova VNC Proxy entries [ DONE ]

Preparing OpenStack Network-related Nova entries [ DONE ]

Preparing Nova Common entries [ DONE ]

Preparing Neutron API entries [ DONE ]

Preparing Neutron L3 entries [ DONE ]

Preparing Neutron L2 Agent entries [ DONE ]

Preparing Neutron DHCP Agent entries [ DONE ]

Preparing Neutron Metering Agent entries [ DONE ]

Checking if NetworkManager is enabled and running [ DONE ]

Preparing OpenStack Client entries [ DONE ]

Preparing Horizon entries [ DONE ]

Preparing Swift builder entries [ DONE ]

Preparing Swift proxy entries [ DONE ]

Preparing Swift storage entries [ DONE ]

Preparing Gnocchi entries [ DONE ]

Preparing Redis entries [ DONE ]

Preparing Ceilometer entries [ DONE ]

Preparing Aodh entries [ DONE ]

Preparing Puppet manifests [ DONE ]

Copying Puppet modules and manifests [ DONE ]

Applying 192.168.10.101_controller.pp

192.168.10.101_controller.pp: [ DONE ]

Applying 192.168.10.101_network.pp

192.168.10.101_network.pp: [ DONE ]

Applying 192.168.10.101_compute.pp

192.168.10.101_compute.pp: [ DONE ]

Applying Puppet manifests [ DONE ]

Finalizing [ DONE ]

**** Installation completed successfully ******

Additional information:

  • Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks
  • A new answerfile was created in: /root/packstack-answers-20210402-151802.txt
  • Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
  • File /root/keystonerc_admin has been created on OpenStack client host 192.168.10.101. To use the command line tools you need to source the file.
  • To access the OpenStack Dashboard browse to http://192.168.10.101/dashboard .

    Please, find your login credentials stored in the keystonerc_admin in your home directory.

  • The installation log file is available at: /var/tmp/packstack/20210402-151801-VVgtnd/openstack-setup.log
  • The generated manifests are available at: /var/tmp/packstack/20210402-151801-VVgtnd/manifests

    您在 /var/spool/mail/root 中有新邮件

//安装成功了

OpenStack 安装完成之后,Linux 虚拟网桥 br-ex 中的 IP 地址是临时的,需要生成对应的配置文件。

OpenStack 入门体验OpenStack 入门体验
OpenStack 入门体验OpenStack 入门体验

[[email protected] network-scripts]# vim ifcfg-br-ex

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=none

IPADDR=172.24.4.1

NETMASK=255.255.255.0

#GATEWAY=192.168.10.2

#DNS1=114.114.114.114

#DNS2=8.8.8.8

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=br-ex

DEVICE=br-ex

ONBOOT=yes

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=none

IPADDR=172.24.4.1

NETMASK=255.255.255.0

#GATEWAY=192.168.10.2

#DNS1=114.114.114.114

#DNS2=8.8.8.8

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=br-ex

DEVICE=br-ex

ONBOOT=yes

[[email protected] network-scripts]# systemctl restart network

OpenStack 入门体验OpenStack 入门体验

至此,OpenStack 安装已完成。控制台消息的最后部分提示了环境变量文件与日志文件的位置,以及登录 Dashboard 的方法。根据提示在浏览器中输入 http://主机 IP地址/dashboard,即可登录 OpenStack 的 Horizon Web 界面进行相关操作。Horizon可以与每个 OpenStack 项目 API 进行通信,所以使用此 Web 界面可以执行大部分任务。

**

通过 Dashboard 体验 OpenStack 功能

Horizon 是 OpenStack 的一个组件, 同时也是OpenStack 中 Dashboard(仪表板,即 Web 控制台)的项目名,主要用于 OpenStack 的管理,其底层通过 API 和

OpenStack 其他组件进行通信,为管理员提供 Web 页面,以方便操作管理。

在 客 户 端 的 浏 览 器 地 址 栏 中 输 入 http://192.168.1.101/dashboard , 进 入Dashboard 的登录界面,如图所示。需要注意的是,如果出现 500 错误页面,这是内部服务器错误,可重新启动服务器解决。

OpenStack 入门体验OpenStack 入门体验

安装 OpenStack 后 ,在 root 用户的 Home 目录下会生成一个 keystonerc_admin文件。该文件记录有 keystone(OpenStack 认证组件)认证的环境变量,包括用户名和登录密码。不同机器生成的默认密码是不同的,如下所示。

OpenStack 入门体验OpenStack 入门体验

在 Web 控制台中输入用户名和密码登录后,是 Dashboard 的默认界面,如图所示。如果登录后为英文界面,可以选择右上角进行语言设置。在用户设置中,选择语言为简体中文。

左边菜单栏主要分为项目、管理员、身份管理三项,下面开始逐个讲解。

OpenStack 入门体验OpenStack 入门体验

Dashboard 登录成功界面

1. 项目

项目中主要包含访问 API、计算、卷、网络、对象存储五个分类。

(1)访问 API

显示所有组件的服务端点,比如计算、注册等服务,如图

OpenStack 入门体验OpenStack 入门体验

API 连接信息

(2)计算类

计算类主要有概况、实例、镜像、密钥对、主机组子类,如图

OpenStack 入门体验OpenStack 入门体验

各子类功能如下:

概况:主要是云计算各资源的使用情况,“of”后面的数字表示资源的上限限制,默认有一个安全组。

实例:所有创建过的云主机会在实例中显示,也可以新创建云主机。

镜像:所有的镜像都会在这显示,可以执行创建镜像和删除镜像等操作。

密钥对:可以创建密钥对通过远程免密码对云主机进行管理。

主机组:依据相关的配置策略针对用户创建的虚拟主机进行管理,主要是约束虚拟主机与虚拟主机在物理主机上部署关系。

(3)卷类

云主机所用到的存储卷,可以创建卷和快照,如图

OpenStack 入门体验OpenStack 入门体验

各子类功能如下:

卷:卷是可被连接到实例的块设备。

快照:为一个卷创建一个快照。

组:卷组提供了一种同时为多个卷创建快照的机制以确保数据一致性。一个卷组可以支持多种卷类型,但它包括的卷必须托管于同一个存储后端。

组快照:针对组,作统一快照。

(4)网络类

网络类主要包含网络拓扑、网络、路由、安全组、浮动 IP、中继子类,如图

OpenStack 入门体验OpenStack 入门体验

各子类功能如下:

网络拓扑:显示当前网络的拓扑结构,包含网络、路由器以及接口。

网络:显示已经创建的云主机网络,也可以新建网络或者编辑现有网络。默认就有一个公用的网络,子网为 172.24.4.0/24。

路由:用于将云主机的私有地址通过路由的方式转发到其他私有网络,或通过 NAT 转发到外部网络,实现网络通信。默认为空。

安全组:类似于防火墙的功能,可以通过安全组设置入口和出口规则,用于控制进出云主机的网络流量。

浮动 IP:一般用于外部网络访问云主机,类似于 NAT 目标地址转换。

中继:将父端口与子端口进行连接。

(5)对象存储类

对象存储类主要包含容器子类,如图

OpenStack 入门体验OpenStack 入门体验

容器表示存储数据的地方,和 Windows 的文件夹、Linux 的目录类似

2. 管理员

“管理员”和“项目”选项卡具有相似的功能,但是权限不同。“管理员”选项卡操作权限更高,但是仅限管理员用户操作。

(1)概况

“管理员”选项卡里面包含了很多功能。其中“概况”列出了不同项目各种资源的使用情况,如图

OpenStack 入门体验OpenStack 入门体验

(2)计算类

“管理员”选项卡内的计算类拥有比“项目”的计算类选项卡内更多、更丰富的功能。拥有对系统资源更高的权限,有些操作只能在“管理员”选项卡的计算类内完成。具体

的功能如图。

OpenStack 入门体验OpenStack 入门体验

每个子类对应的功能如下:

虚拟机管理器:当前所有虚拟机在 CPU、内存和磁盘三方面的的使用情况。

主机聚合:通过将主机组合到一起来把可用区域划分成逻辑单元。

实例:列出已经存在的所有云主机,不包括创建实例选项。

实例类型:创建云主机的规格,比如 CPU 数量、内存容量、硬盘容量。默认会提供部分实例类型,也可以根据需求进行自定义。

镜像:列出所有的镜像,可以执行创建镜像和删除镜像等操作。

(3)卷类

卷应用到 OpenStack 的数据存储。“管理员”选项卡下的“卷”比“项目”下的“卷”多了两个功能,分别是“卷类型”和“组类型”,如图

OpenStack 入门体验OpenStack 入门体验

每个子类对应的功能如下

卷:不同于“项目”中的“卷”,管理员选项卡下不能创建“卷”,适用于对“卷”的各种管理操作。

快照:为卷创建的快照,可进行“删除卷快照”和“更新元数据”等操作。

卷类型:在 OpenStack 中创建卷时,选择一个类型或者标签,被称为卷类型。针对这个卷,卷类型通常是指后端存储驱动程序的一组指标。

组:卷组提供了一种同时为多个卷创建快照的机制以确保数据一致性。一个卷组可以支持多种卷类型,但它包括的卷必须托管于同一个存储后端。

组快照:针对组,作的统一快照。

组类型:组类型是在 OpenStack 创建组的时候可以指定的一个类型或标签。它通常映射到这个组所使用的存储后端驱动器的性能指标集合。

(4)网络类

“管理员”选项卡内的网络类基本功能和“项目”相比,多了“RBAC 策略”,少了“安全组”,如图

OpenStack 入门体验OpenStack 入门体验

每个子类对应的功能如下:

网络:显示已经创建的云主机网络,也可以新建网络或者编辑现有网络。默认就有一个公用的网络,其子网为 172.24.4.0/24。

路由:用于将云主机的私有地址通过路由的方式转发到其他私有网络,或通过 NAT 转发到外部网络,实现网络通信。默认为空。

浮动 IP:是一些可以从外部访问的 IP 列表,通常从 ISP 那里买来的。 浮动IP 缺省不会自动赋给实例,用户需要手动从地址池里抓取然后赋给实例。

中继:将父端口与子端口进行连接。

RBAC 策略:基于角色的访问控制(RBAC)策略框架允许运营商和用户授予对特定项目的资源访问权。

(5)系统类

系统类是“管理员”选项内独有的,它包含:“默认值”,“元数据定义”和“系统信息”三个子类。

OpenStack 入门体验OpenStack 入门体验

每个子类对应的功能如下:

默认值:也可以称作“限制值”,通常包括三个方面的配额值,分别是“计算配额”、“卷配额”和“网络配额”。

元数据定义:通常用来定义命名空间,在导入命名空间时,只支持裸 JSON格式。系统管理员在导入时可使用 glance-manage 命令实现。

系统信息:列举了“服务”、“计算服务”、“块存储服务”和“网络代理”四个方面的相关信息。

3. 身份管理

身份管理主要有项目、用户、组、角色等分类,如图

OpenStack 入门体验OpenStack 入门体验

每个分类实现的功能有:

项目:显示当前所有的项目,即租户。

用户:显示当前所有的用户。

组:显示当前所有的组。

角色:显示当前所有的角色。

应用程序凭证:应用程序凭据提供了一种在不共享用户密码身份验证的情况下将用户授权委派给应用程序的方法。

**

创建云主机

了解了控制台的基本功能之后,开始尝试通过 OpenStack 创建一台云主机。

一台云主机成功创建或启动需要依赖 OpenStack 中的各种虚拟资源,如 CPU、内存、硬盘等。如果需要云主机连接外部网络,还需要网络、路由器等资源。如果需

要外部网络访问云主机,那么还需要配置浮动 IP。因此,在创建云主机之前,首先要保证所需的资源已经配置完成。

实验中,使用默认的实例类型 m1.tiny(1CPU、512MB 内存、1GB 根分区磁盘),新创建网络 private,并通过路由器 my_route 将虚拟机所在的 private 网络

路由(同时执行 NAT 转换)到外部网络 public,创建云主机并使其可以访问外部网络。

在实验过程中,创建了云主机之后,如果某页面无法打开,可观察虚拟机内存使用情况,必要时增加些内存,再继续进行实验。

1. 创建网络

管理员成功登录 Dashboard 后,执行以下操作可以创建一个自定义的网络。

①在控制台中依次单击“项目”“网络”“网络”按钮。在右边区域默认存在公有网络 public,如图

OpenStack 入门体验OpenStack 入门体验

②单击右上角“+创建网络”按钮,在弹出的创建网络界面中,输入网络名称为“private”,保持默认的复选框状态,单击“下一步”按钮,如图

OpenStack 入门体验OpenStack 入门体验

③ 在子网信息页面,输入子网名称、网络地址等参数,网关 IP 字段如果保持为空,表示网关是使用该网络的第一个地址,即 x.x.x.1 为网关地址。如果不希望该网

络中的虚拟机通过该网络访问其他网络,可勾选“禁用网关”,单击“下一步”按钮。如图

OpenStack 入门体验OpenStack 入门体验

④在子网详情页面中,可以配置 DHCP,向该网络中的云主机自动分配 IP 地址。如需配置 DHCP,保持“激活 DHCP”为勾选状态,分配地址池栏中,输入需要分配 IP地址的范围,首地址和末地址以逗号分割,DNS 服务器中输入需要分配的 DNS 地址,这通常是网络中真实的 DNS 服务器地址。单击“创建”按钮,如图

OpenStack 入门体验OpenStack 入门体验

⑤完成网络创建操作后,在网络列表页面中会显示已创建成功的网络,如图

OpenStack 入门体验OpenStack 入门体验

2. 创建路由

创建路由的目的是为了云主机所在的私有网络和外部网络所在的公有网络之间实现进行信息的转发,让云主机可以访问外部网络。下面是具体的操作步骤。

①在控制台中依次单击“项目”“网络”“路由”按钮,如图

OpenStack 入门体验OpenStack 入门体验

②单 击 右 上 角 的 “+新 建 路 由 ”按 钮 , 在 弹 出 的 新 建 路 由 页 面 , 填 写 路 由 名 称my_route,外部网络选择默认的公有网络 public,复选框保持默认,完成后单击“新建路由”按钮,如图

OpenStack 入门体验OpenStack 入门体验

③在路由列表页面可以看到之前创建的路由器(虚拟路由器),如图所示。新的路由器创建完成后默认存在一个外部接口,并关联到外部网络中。除此之外,还需要增加一个接口并关联到内部网络 private,从而实现两个网络之间转发数据。

OpenStack 入门体验OpenStack 入门体验

④ 在图 1.21 中,单击右边区域的路由器名称“my_route”超链接,进入路由器详细信息页面。在弹出的路由器详细信息页面中,单击“接口”标签,就会弹出如图所示“接口”选项卡的内容。

OpenStack 入门体验OpenStack 入门体验

⑤单击上图中“+增加接口”按钮,在弹出的增加接口页面,选择子网为之前创建 的 private 私 有 网 络 , IP 地 址 栏 可 以 留 空 , 默 认 为 private 网 络 的 网 关 地 址

(192.168.137.1)。完成后单击“提交”按钮。如图

OpenStack 入门体验OpenStack 入门体验

⑥完成后单击“提交”按钮之后,即可返回路由配置页面,可以看到创建成功的接口,如图

OpenStack 入门体验OpenStack 入门体验

⑦完成创建网络和创建路由之后,再次查看网络拓扑。

依次单击“项目”“网络”“网络拓扑”按钮,在右边的网络拓扑区域已经多了一个私有网络,并且私有网络和公有网络之间通过路由器连接,如图

OpenStack 入门体验OpenStack 入门体验

至此,完成了网络资源的配置。

3. 创建云主机

完成网络和路由部分的配置之后,下面开始创建第一台云主机。

①核实镜像的大小,依次单击“项目”“计算”“镜像”按钮,可以看到 cirrors 镜像的大小仅为 273 字节,如图所示。如果使用此镜像创建云主机,则会报错,所以首先要上传制作正确的镜像。

OpenStack 入门体验OpenStack 入门体验

②点 击 右 侧 的 “+创 建 镜 像 ”, 在 弹 出 的 页 面 内 填 写 镜 像 信 息 。 镜 像 名 称 填 写“cirrors01”,镜像源通过“浏览”的方式选择到 cirros-0.5.1-x86_64-disk.img,镜像格式选择“QCOW2”,将镜像的可见性选为“公有”,最后点击创建镜像。如图③镜像创建完成后,大小为 15M 左右,远大于 273K,如图

OpenStack 入门体验OpenStack 入门体验
OpenStack 入门体验OpenStack 入门体验

④完成镜像的创建后,下面开始创建云主机。依次单击“项目”“计算”“实例”按钮,在右边区域中没有任何实例存在。创建云主机需要单击右上角“创建实例”按钮,如图

OpenStack 入门体验OpenStack 入门体验

⑤在弹出的创建实例中的“详情”页面,填写实例名称为“test”,其他字段保持默认设置,并单击“下一项”按钮,如图

OpenStack 入门体验OpenStack 入门体验
OpenStack 入门体验OpenStack 入门体验
OpenStack 入门体验OpenStack 入门体验
OpenStack 入门体验OpenStack 入门体验

⑧在“网络”页面中,选择云主机连接的私有网络。单击之前创建的名称为“private”网络右边的箭头,保证 private 网络置于可分配,如图所示。后续的步骤保持默认即可,最后直接单击“创建实例”按钮创建云主机。

OpenStack 入门体验OpenStack 入门体验

⑨在弹出的实例列表页面中,可以看到已创建的云主机。创建实例有一个过程,需要执行块设备映射等操作,主要看硬件和网络的性能,可能需要等待几秒或者十几秒钟,最后看到成功运行。如图

OpenStack 入门体验OpenStack 入门体验

4. 管理云主机并测试连通性

①云主机启动成功后,单击云主机 test 中“创建快照”按钮右边的下拉菜单,并选择“控制台”按钮,如图

OpenStack 入门体验OpenStack 入门体验

②在弹出的控制台页面中,单击“点击此处只显示控制台”超链接,进入云主机的控制台页面,如图所示。如果控制台页显示黑屏,同时按下“Ctrl+Alt”按钮即可。

OpenStack 入门体验OpenStack 入门体验

③根据控制台提示信息,输入登录用户名:cirros,密码:gocubsgo。如果进入$提示符的 shell 终端,说明已经成功登录,如图

OpenStack 入门体验OpenStack 入门体验

④在云主机控制台中运行 ifconfig 命令,从命令输出结果中可以看到,云主机已经通过 private 网络中的 DHCP 自动获取到 IP 地址 192.168.137.143如图

OpenStack 入门体验OpenStack 入门体验

⑤在云主机上测试连接 baidu.com 和 Windows 本机 IP 的连通性,如图

OpenStack 入门体验OpenStack 入门体验

注意:如果 ping 外网不通,请检查 ifcfg-br-ex 配置文件并查看宿主机 br-ex 网卡是否启动。如果没有启动,需要执行以下命令:

[[email protected] ~]# ifconfig br-ex 172.24.4.1 netmask 255.255.255.0 up

再次测试,如果还是 ping 外网不通,检查下 Linux 虚拟机是否开启了路由转发。若没开启,可执行如下命令开启。

[[email protected] ~]# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

[[email protected] ~]# sysctl -p

至此,已经基本完成 OpenStack 入门体验。但在实际生产环境中,无论是搭建部署还是运维操作都要更加复杂,需要多加练习基本操作

如果实列控制台创建的实例屏幕是黑色的可以重启一下实例试一下