1.1 云计算简介

1.1.1 云计算的特点

1.1.2 云计算服务模式

云计算定义中明确了三种服务模式:

软件即服务(SaaS****):

**     ** Software-as-a-service

平台即服务(PaaS****):

**     ** Platform-as-a-service

基础设施即服务(IaaS****):

**     ** Infrastructure-as-a-service

1.1.3 云计算的类型

? 公有云(Public Cloud

? 私有云(Private Cloud

? 混合云(Hybrid Cloud

1.1.4 为什么要选择云计算

1.2 OpenStack简介

1.2.1 市场趋向

1.2.2 大型用户

1.2.3 OpenStack项目介绍

<td style="width: 17.62%; border-top: solid #9BBB59 1.0pt; border-left: none; border-bottom: solid #9BBB59 1.0pt; border-right: none; background: #9BBB59; padding: 0cm 5.4pt 0cm 5.4pt;" width="17%">
  <p style="text-align: center;" align="center">
    <strong><span style="font-family: '微软雅黑',sans-serif;">项目名称</span></strong>
  </p>
</td>

<td style="width: 59.38%; border-top: 1pt solid #9bbb59; border-right: 1pt solid #9bbb59; border-bottom: 1pt solid #9bbb59; border-left: none; background: #9bbb59; padding: 0cm 5.4pt;" width="59%">
  <p style="text-align: center;" align="center">
    <strong><span style="font-family: '微软雅黑',sans-serif;">描述</span></strong>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="17%">
  <p style="text-align: center;" align="center">
    Horizon
  </p>
  
  <p style="text-align: center;" align="center">
    <span style="font-family: '微软雅黑',sans-serif;">提供</span>web<span style="font-family: '微软雅黑',sans-serif;">界面</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="59%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">提供了一个基于</span>web<span style="font-family: '微软雅黑',sans-serif;">的自服务门户,与</span>OpenStack<span style="font-family: '微软雅黑',sans-serif;">底层服务交互,诸如启动一个实例,分配</span>IP<span style="font-family: '微软雅黑',sans-serif;">地址以及配置访问控制。</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="17%">
  <p style="text-align: center;" align="center">
    Nova
  </p>
  
  <p style="text-align: center;" align="center">
    <span style="font-family: '微软雅黑',sans-serif;">计算节点</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="59%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">在</span>OpenStack<span style="font-family: '微软雅黑',sans-serif;">环境中计算实例的生命周期管理。按需响应包括生成、调度、回收虚拟机等操作。</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="17%">
  <p style="text-align: center;" align="center">
    Neutron
  </p>
  
  <p style="text-align: center;" align="center">
    <span style="font-family: '微软雅黑',sans-serif;">网络服务</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="59%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">确保为其它</span>OpenStack<span style="font-family: '微软雅黑',sans-serif;">服务提供网络连接即服务,比如</span>OpenStack<span style="font-family: '微软雅黑',sans-serif;">计算。为用户提供</span>API<span style="font-family: '微软雅黑',sans-serif;">定义网络和使用。基于插件的架构其支持众多的网络提供商和技术。</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="17%">
  <p style="text-align: center;" align="center">
    Swift
  </p>
  
  <p style="text-align: center;" align="center">
    <span style="font-family: '微软雅黑',sans-serif;">对象存储</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="59%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">通过一个</span> RESTful,<span style="font-family: '微软雅黑',sans-serif;">基于</span>HTTP<span style="font-family: '微软雅黑',sans-serif;">的应用程序接口存储和任意检索的非结构化数据对象。它拥有高容错机制,基于数据复制和可扩展架构。它的实现并像是一个文件服务器需要挂载目录。在此种方式下,它写入对象和文件到多个硬盘中,以确保数据是在集群内跨服务器的多份复制。</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="17%">
  <p style="text-align: center;" align="center">
    Cinder
  </p>
  
  <p style="text-align: center;" align="center">
    <span style="font-family: '微软雅黑',sans-serif;">块存储</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="59%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">为运行实例而提供的持久性块存储。它的可插拔驱动架构的功能有助于创建和管理块存储设备。</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="17%">
  <p style="text-align: center;" align="center">
    Keystone
  </p>
  
  <p style="text-align: center;" align="center">
    <span style="font-family: '微软雅黑',sans-serif;">认证节点</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="59%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">为其他</span>OpenStack<span style="font-family: '微软雅黑',sans-serif;">服务提供认证和授权服务,为所有的</span>OpenStack<span style="font-family: '微软雅黑',sans-serif;">服务提供一个端点目录。</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="17%">
  <p style="text-align: center;" align="center">
    Glance
  </p>
  
  <p style="text-align: center;" align="center">
    <span style="font-family: '微软雅黑',sans-serif;">镜像服务</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="59%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">存储和检索虚拟机磁盘镜像,</span>OpenStack<span style="font-family: '微软雅黑',sans-serif;">计算会在实例部署时使用此服务。</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="17%">
  <p style="text-align: center;" align="center">
    Ceilometer
  </p>
  
  <p style="text-align: center;" align="center">
    <span style="font-family: '微软雅黑',sans-serif;">计费</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="59%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">为</span>OpenStack<span style="font-family: '微软雅黑',sans-serif;">云的计费、基准、扩展性以及统计等目的提供监测和计量。</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="17%">
  <p style="text-align: center;" align="center">
    Heat
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="59%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    Orchestration<span style="font-family: '微软雅黑',sans-serif;">服务支持多样化的综合的云应用,通过调用</span>OpenStack-native REST API<span style="font-family: '微软雅黑',sans-serif;">和</span>CloudFormation-compatible Query API<span style="font-family: '微软雅黑',sans-serif;">,支持</span>:term:`HOT `<span style="font-family: '微软雅黑',sans-serif;">格式模板或者</span>AWS CloudFormation<span style="font-family: '微软雅黑',sans-serif;">格式模板</span>
  </p>
</td>

1.2.4 系统环境说明

controller**节点说明**

compute1compute2节点的配置与controller相同。

1.3 OpenStack基础配置服务

1.3.1 OpenStack服务部署顺序

  <p class="a">
    [2]  部署 Keystorne 认证服务,token <a href="https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/keystone.html">https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/keystone.html</a>
  </p>
  
  <p class="a">
    [3]  部署 Glance 镜像服务 <a href="https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/glance.html">https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/glance.html</a>
  </p>
  
  <p class="a">
    [4]  部署 Nova 计算服务(kvm) <a href="https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/nova.html">https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/nova.html</a>
  </p>
  
  <p class="a">
    [5]  部署 Neutron 网络服务 <a href="https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron.html">https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron.html</a>
  </p>
  
  <p class="a">
    [6]  部署 Horizon 提供web界面 <a href="https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/horizon.html">https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/horizon.html</a>
  </p>
  
  <p class="a">
    [7]  部署 Cinder 块存储(硬盘) <a href="https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/horizon.html">https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/horizon.html</a>
  </p>
</div>

1.3.2 配置本地yum

首先将镜像挂载到 /mnt

创建repo文件

[openstack] name=openstack-mitaka baseurl=file:///opt/repo gpgcheck=0 EOF

生成yum缓存

1.3.3 安装NTP时间服务

控制节点(提供时间服务,供其他机器同步)

计算节点(配置chrony客户端)

配置文件说明:

1.3.4 OpenStack的包操作(添加新的计算节点时需要安装)

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-packages.html

安装 OpenStack 客户端:

RHEL CentOS 默认启用了 SELinux

1.3.5 SQL数据库安装(在控制节点操作)

安装mariadb软件包:

创建配置文件

启动mariadb

执行mariadb安全初始化

Thanks for using MariaDB! 

1.3.6 NoSQL 数据库

向导中使用MongoDB

1.3.7 消息队列部署

安装消息队列软件

启动消息队列服务并将其配置为随系统启动:

添加 openstack 用户:

``openstack``用户配置写和读权限:

1.3.8 Memcached服务部署

安装memcached软件包

配置memcached配置文件

启动Memcached服务,并且配置它随机启动。

1.3.9 验证以上部署的服务是否正常

查看端口信息

端口信息说明

chronyd服务          123(提供给其他机器)、323(与上游同步端口)

Mariadb 数据库        3306数据接口

rabbitmq  消息队列    4369、25672(高可用架构使用)、5672(程序写端口)

memcached token保存  11211

1.4 Keystone认证服务配置

   在控制节点上安装和配置OpenStack身份认证服务,代码名称keystone。出现性能原因,这个配置部署Fernet令牌和Apache HTTP服务处理请求。

1.4.1 创建数据库

用数据库连接客户端以 root 用户连接到数据库服务器:

创建 keystone 数据库:

``keystone``数据库授予恰当的权限:

添加完成后退出数据库客户端。

1.4.2 安装keystone

安装的软件包为 keystone服务包,http服务,用于连接python程序与web服务的中间件

1.4.3 修改配置文件

备份配置文件

精简化配置文件

手动修改配置文件

【自动化】自动化配置-配置文件(本文大量使用)

自动化配置命令

1.4.4 初始化身份认证服务的数据库(同步数据库)

验证数据库是否同步成功

1.4.5 初始化Fernet keys

命令执行后会在/etc/keystone/目录下生成fernet-keys  文件:

1.4.6 配置 Apache HTTP 服务器

编辑``/etc/httpd/conf/httpd.conf`` 文件,配置``ServerName``

创建配置文件 /etc/httpd/conf.d/wsgi-keystone.conf

注:keystone服务较为特殊,其他的服务可自行创建配置文件。

<VirtualHost *:5000> WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP} WSGIProcessGroup keystone-public WSGIScriptAlias / /usr/bin/keystone-wsgi-public WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On ErrorLogFormat “%{cu}t %M” ErrorLog /var/log/httpd/keystone-error.log CustomLog /var/log/httpd/keystone-access.log combined

</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Directory </span><span style="color: #ff0000;">/usr/bin</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">
    Require all granted
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">Directory</span><span style="color: #0000ff;">&gt;</span>

</VirtualHost>

<VirtualHost *:35357> WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP} WSGIProcessGroup keystone-admin WSGIScriptAlias / /usr/bin/keystone-wsgi-admin WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On ErrorLogFormat “%{cu}t %M” ErrorLog /var/log/httpd/keystone-error.log CustomLog /var/log/httpd/keystone-access.log combined

</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Directory </span><span style="color: #ff0000;">/usr/bin</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">
    Require all granted
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">Directory</span><span style="color: #0000ff;">&gt;</span>

</VirtualHost>

1.4.7 启动 Apache HTTP 服务并配置其随系统启动

1.4.8 创建服务实体和API端点

a.配置环境变量

命令集:

b.创建服务实体和API端点

c.创建认证服务的 API 端点

命令集

执行过程

[root@controller ~]# openstack endpoint create –region RegionOne </span> > identity internal http://controller:5000/v3 +————–+———————————-+ | Field | Value | +————–+———————————-+ | enabled | True | | id | 71b7435fa2df4c58bb6ca5cc38a434a7 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | f08ec36b2b7340d6976fcb2bbd24e83b | | service_name | keystone | | service_type | identity | | url | http://controller:5000/v3 | +————–+———————————-+

[root@controller ~]# openstack endpoint create –region RegionOne </span> > identity admin http://controller:35357/v3 +————–+———————————-+ | Field | Value | +————–+———————————-+ | enabled | True | | id | cf58eee084c04777a520d487adc1a88f | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | f08ec36b2b7340d6976fcb2bbd24e83b | | service_name | keystone | | service_type | identity | | url | http://controller:35357/v3 | +————–+———————————-+

1.4.9 创建域、项目、用户和角色

a.创建域default

b.在你的环境中,为进行管理操作,创建管理的项目、用户和角色

命令集:

c.创建servers项目

验证之前的所有操作

命令集:

查看服务列表

查看当前的域

查看集合

查看当前的用户列表

查看当前的角色

关于域、项目、用户和角色的说明:

<td style="width: 83.78%; border-top: 1pt solid #9bbb59; border-right: 1pt solid #9bbb59; border-bottom: 1pt solid #9bbb59; border-left: none; background: #9bbb59; padding: 0cm 5.4pt;" width="83%">
  <p style="text-align: center;" align="center">
    <strong><span style="font-family: '微软雅黑',sans-serif;">说明</span></strong>
  </p>
</td>
<td style="width: 83.78%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="83%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">表示</span> project <span style="font-family: '微软雅黑',sans-serif;">和</span> user <span style="font-family: '微软雅黑',sans-serif;">的集合,在公有云或者私有云中常常表示一个客户</span>
  </p>
</td>
<td style="width: 83.78%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="83%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">一个</span>domain <span style="font-family: '微软雅黑',sans-serif;">中的部分用户的集合</span>
  </p>
</td>
<td style="width: 83.78%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="83%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">项目、</span>IT<span style="font-family: '微软雅黑',sans-serif;">基础设施资源的集合,比如虚机,卷,镜像等</span>
  </p>
</td>
<td style="width: 83.78%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="83%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">授权,角色,表示一个</span> user <span style="font-family: '微软雅黑',sans-serif;">对一个</span> project resource <span style="font-family: '微软雅黑',sans-serif;">的权限</span>
  </p>
</td>
<td style="width: 83.78%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="83%">
  <p style="text-align: justify; text-justify: inter-ideograph;">
    <span style="font-family: '微软雅黑',sans-serif;">一个</span> user <span style="font-family: '微软雅黑',sans-serif;">对于某个目标(</span>project <span style="font-family: '微软雅黑',sans-serif;">或者</span> domain<span style="font-family: '微软雅黑',sans-serif;">)的一个有限时间段内的身份令牌</span>
  </p>
</td>

1.4.10 创建 OpenStack 客户端环境脚本

编辑文件 admin-openrc 并添加如下内容

【重要】务必使用环境变量脚本

使用脚本创建环境变量

1.5 镜像服务glance部署

1.5.1 创库授权

1.5.2 创建glance用户和授权

1.5.3 创建镜像服务的 API 端点,并注册

创建``glance``服务实体

执行过程

创建镜像服务的 API 端点

1.5.4 安装glance软件包

服务说明:

1.5.5 修改glance相关配置文件

1、编辑文件 /etc/glance/glance-registry.conf

[database] 部分,配置数据库访问

[keystone_authtoken] [paste_deploy] 部分,配置认证服务访问

[paste_deploy]
...
flavor </span>= keystone</pre>

[glance_store] 部分,配置本地文件系统存储和镜像文件位置

命令集

2、编辑文件 /etc/glance/glance-registry.conf

[database] 部分,配置数据库访问

[keystone_authtoken] [paste_deploy] 部分,配置认证服务访问

[paste_deploy]
...
flavor </span>= keystone</pre>

命令集

1.5.6 同步数据库

检查数据库是否同步成功

1.5.7 启动glance服务

启动镜像服务、配置他们随机启动

1.5.8 验证glance服务操作

a.设置环境变量

b.下载源镜像

c.使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它

执行过程如下

查看镜像列表

镜像位置,镜像上传后以id命名。

至此glance服务配置完成

1.6 计算服务(nova)部署

1.6.1 在控制节点安装并配置

1)在数据库中,创库,授权

2)在keystone中创建用户并授权

3)在keystone中创建服务实体,和注册API接口

创建服务实体

注册API接口

4)安装软件包

软件包说明

nova-api             # 提供api接口

nova-scheduler  # 调度

nova-conductor  # 替代计算节点进入数据库操作

nova-consoleauth   # 提供web界面版的vnc管理

nova-novncproxy  # 提供web界面版的vnc管理

nova-compute   # 调度libvirtd进行虚拟机生命周期的管理

5)修改配置文件

[database]
...
connection </span>= mysql+pymysql://nova:NOVA_DBPASS@controller/nova</pre>
[oslo_messaging_rabbit]
...
rabbit_host </span>=<span style="color: #000000;"> controller
rabbit_userid </span>=<span style="color: #000000;"> openstack
rabbit_password </span>= RABBIT_PASS</pre>
[keystone_authtoken]
...
auth_uri </span>= http://controller:5000<span style="color: #000000;">
auth_url </span>= http://controller:35357<span style="color: #000000;">
memcached_servers </span>= controller:11211<span style="color: #000000;">
auth_type </span>=<span style="color: #000000;"> password
project_domain_name </span>=<span style="color: #000000;"> default
user_domain_name </span>=<span style="color: #000000;"> default
project_name </span>=<span style="color: #000000;"> service
username </span>=<span style="color: #000000;"> nova
password </span>= NOVA_PASS</pre>

6)同步数据库

7)启动服务

5

1.6.2 在计算节点安装和配置

1)安装软件包

2)修改配置文件

[oslo_messaging_rabbit]
...
rabbit_host </span>=<span style="color: #000000;"> controller
rabbit_userid </span>=<span style="color: #000000;"> openstack
rabbit_password </span>= RABBIT_PASS</pre>
[keystone_authtoken]
...
auth_uri </span>= http://controller:5000<span style="color: #000000;">
auth_url </span>= http://controller:35357<span style="color: #000000;">
memcached_servers </span>= controller:11211<span style="color: #000000;">
auth_type </span>=<span style="color: #000000;"> password
project_domain_name </span>=<span style="color: #000000;"> default
user_domain_name </span>=<span style="color: #000000;"> default
project_name </span>=<span style="color: #000000;"> service
username </span>=<span style="color: #000000;"> nova
password </span>= NOVA_PASS</pre>

注意: 将其中的 MANAGEMENT_INTERFACE_IP_ADDRESS 替换为计算节点上的管理网络接口的IP 地址,例如 :ref:example architecture 中所示的第一个节点 10.0.0.31

3)启动服务

1.6.3 验证服务

1.7 Networking(neutron)服务

1.7.1 安装并配置控制节点

   参考文献:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron-controller-install.html

1)在数据库中,创库,授权

2)在keystone中创建用户并授权

3)在keystone中创建服务实体,和注册API接口

4)安装软件包

这这里我选用的时’网络选项1_:公共网络‘_ 该网络模式较为简单。

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron-controller-install-option1.html

安装软件包

5)修改配置文件

[oslo_messaging_rabbit]
...
rabbit_host </span>=<span style="color: #000000;"> controller
rabbit_userid </span>=<span style="color: #000000;"> openstack
rabbit_password </span>= RABBIT_PASS</pre>
[keystone_authtoken]
...
auth_uri </span>= http://controller:5000<span style="color: #000000;">
auth_url </span>= http://controller:35357<span style="color: #000000;">
memcached_servers </span>= controller:11211<span style="color: #000000;">
auth_type </span>=<span style="color: #000000;"> password
project_domain_name </span>=<span style="color: #000000;"> default
user_domain_name </span>=<span style="color: #000000;"> default
project_name </span>=<span style="color: #000000;"> service
username </span>=<span style="color: #000000;"> neutron
password </span>= NEUTRON_PASS</pre>
[nova]
...
auth_url </span>= http://controller:35357<span style="color: #000000;">
auth_type </span>=<span style="color: #000000;"> password
project_domain_name </span>=<span style="color: #000000;"> default
user_domain_name </span>=<span style="color: #000000;"> default
region_name </span>=<span style="color: #000000;"> RegionOne
project_name </span>=<span style="color: #000000;"> service
username </span>=<span style="color: #000000;"> nova
password </span>= NOVA_PASS</pre>

② 配置 Modular Layer 2 (ML2) 插件

命令集

③ 配置Linuxbridge代理

注意:将PUBLIC_INTERFACE_NAME 替换为底层的物理公共网络接口,例如eth0

``[securitygroup]``部分,启用安全组并配置

命令集

④ 配置DHCP代理

编辑``/etc/neutron/metadata_agent.ini``文件并完成以下操作

⑥ 为nove配置网络服务

service_metadata_proxy </span>=<span style="color: #000000;"> True
metadata_proxy_shared_secret </span>= METADATA_SECRET</pre>

命令集

6)同步数据库

7)启动服务

1.7.2 安装和配置计算节点

1)安装组件

2)修改配置文件

[oslo_messaging_rabbit]
...
rabbit_host </span>=<span style="color: #000000;"> controller
rabbit_userid </span>=<span style="color: #000000;"> openstack
rabbit_password </span>= RABBIT_PASS</pre>
[keystone_authtoken]
...
auth_uri </span>= http://controller:5000<span style="color: #000000;">
auth_url </span>= http://controller:35357<span style="color: #000000;">
memcached_servers </span>= controller:11211<span style="color: #000000;">
auth_type </span>=<span style="color: #000000;"> password
project_domain_name </span>=<span style="color: #000000;"> default
user_domain_name </span>=<span style="color: #000000;"> default
project_name </span>=<span style="color: #000000;"> service
username </span>=<span style="color: #000000;"> neutron
password </span>= NEUTRON_PASS</pre>

[oslo_concurrency] 部分,配置锁路径

命令集

注意:将PUBLIC_INTERFACE_NAME 替换为底层的物理公共网络接口,例如eth0     ``[vxlan]``部分,禁止VXLAN覆盖网络

``[securitygroup]``部分,启用安全组并配置

③ 为计算节点配置网络服务

3)启动服务

1.7.3 验证操作

1.8 Dashboardhorizon-web界面)安装

1.8.1 安全并配置组件(单独主机安装)

由于Dashboard服务需要使用到httpd服务,安装在控制节点,可能回影响到Keystone服务的正常运行,所以选择单独安装,与官方文档略有不同。

1.8.2 修改配置文件

编辑文件 /etc/openstack-dashboard/local_settings 并完成如下动作

controller 节点上配置仪表盘以使用 OpenStack 服务

允许所有主机访问仪表板

配置 memcached 会话存储服务

CACHES </span>=<span style="color: #000000;"> {
    </span><span style="color: #800000;">'</span><span style="color: #800000;">default</span><span style="color: #800000;">'</span><span style="color: #000000;">: {
         </span><span style="color: #800000;">'</span><span style="color: #800000;">BACKEND</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">django.core.cache.backends.memcached.MemcachedCache</span><span style="color: #800000;">'</span><span style="color: #000000;">,
         </span><span style="color: #800000;">'</span><span style="color: #800000;">LOCATION</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">controller:11211</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    }
}</span></pre>

启用第3版认证API:

启用对域的支持

配置API版本

通过仪表盘创建用户时的默认域配置为 default :

通过仪表盘创建的用户默认角色配置为 user

如果您选择网络选项1,需要禁用支持3层网络服务

可以选择性地配置时区

最终配置文件

文件详情:

:上传配置文件时需要注意配置文件权限问题

1.8.3 启动服务

1.8.4 验证操作

使用浏览器访问 http://10.0.0.31/dashboard ,推荐使用火狐浏览器。

信息说明:第一次连接时速度较慢,耐心等待。

域:default

用户名:admin

密码:ADMIN_PASS

1.9 启动第一台实例

1.9.1 创建虚拟网络

参数说明

配置过程

1.9.2 创建m1.nano规格的主机

1.9.3 生成一个键值对,创建密钥对

生成密钥,并使用

分配密钥

检查密钥对

1.9.4 增加安全组规则

允许 ICMP (ping)

允许安全 shell (SSH) 的访问

1.9.5 启动第一台云主机

启动之前先进行基础环境的检查

获取网络id

启动云主机,注意net-id为创建的network ID

检查云主机的状况

1.9.6 WEB端进行查看

查看云主机状态

使用控制台登陆

使用控制台登陆

1.9.7 使用web界面创建一个实例

2、设置主机名称,点下一项

3、选择一个镜像

4、选择一个配置

5、网络

6、安全组

7、密钥对

8、启动实例

9、创建完成

10、查看主机列表

11、密钥连接测试

至此云主机创建完成。

1.10 cinder块存储服务

1.10.1 环境准备

compute1计算节点添加两块硬盘,分别为:

1.10.2 安装并配置控制节点

1)在数据库中,创库,授权

2)在keystone中创建用户并授权

3)在keystone中创建服务实体,和注册API接口

4)安装软件包

5)修改配置文件

[oslo_messaging_rabbit] … rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS

[DEFAULT] [keystone_authtoken] 部分,配置认证服务访问

[keystone_authtoken] … auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = CINDER_PASS

6)同步数据库

7)启动服务

1.10.3 安装并配置一个存储节点

1)安装lvm软件

2)创建物理卷

将之前添加的两块硬盘创建物理卷

执行过程

3)创建 LVM 卷组

查看创建出来的卷组

4)修改配置文件

   默认情况下,LVM卷扫描工具会扫描``/dev`` 目录,查找包含卷的块存储设备。

如果项目在他们的卷上使用LVM,扫描工具检测到这些卷时会尝试缓存它们,可能会在底层操作系统和项目卷上产生各种问题。

5)安装软件并配置组件

6)配置文件修改

[oslo_messaging_rabbit] … rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS

[keystone_authtoken] … auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = CINDER_PASS

7)启动服务

8)验证检查状态

1.10.4 添加ssd盘配置信息

修改配置文件

[lvm] ··· volume_backend_name = sata

[ssd] volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volume_group = cinder-volumes-ssd iscsi_protocol = iscsi iscsi_helper = lioadm volume_backend_name = ssd

重启服务

检查cinder服务状态

1.10.5 Dashboard中如何创建硬盘

1、登陆浏览器dashboardhttp://10.0.0.31/dashboard

选择创建卷

2)创建一个sata类型的卷

3)创建过程

   创建完成

4)床啊进ssd类型卷

5)在查看创建的硬盘

1.10.6 添加硬盘到虚拟机

连接到一个实例

登陆虚拟机

格式化磁盘

创建文件测试

1.11 添加一台新的计算节点

1.11.1 主机基础环境配置

1)配置本地yum仓库(提高安装速度)

[openstack] name=openstack-mitaka baseurl=file:///opt/repo gpgcheck=0 EOF

2)配置NTP时间服务

3)安装OpenStack的包操作

1.11.2 安装配置计算服务

安装nova软件包

命令集修改配置文件

1.11.3 配置neutron网络

安装neutron相关组件

修改neutron配置

再次配置 nova 服务

1.11.4 启动计算节点

#启动nova服务,设置开机自启动

# 启动Linuxbridge代理并配置它开机自启动

# 查看状态

1.11.5 验证之前的操作

在控制节点验证配置

验证网络配置

验证计算节点

1.12 Glance镜像服务迁移

1.12.1 数据库迁移

安装数据库

修改数据库配置文件

启动数据库,并设置开机自启动

【重要】为了保证数据库服务的安全性,运行``mysql_secure_installation``脚本

1.12.2 镜像glance 数据库迁移

以下操作在compute2节点上进行操作

重新创建glance授权用户

1.12.3 安装glance服务

   批量修改命令集:

编辑配置文件 /etc/glance/glance-registry.conf

   批量修改命令集:

1.12.4 迁移原有镜像文件

1.12.5 修改现有keystone glance服务注册信息

备份数据库endpoint表数据

修改keystone注册信息

重新将修改后的sql文件导入数据库

1.12.6 修改nova节点配置文件

计算节点重启

停掉glance原节点的服务

1.12.7 验证操作

copmute2节点启动glance服务

查看镜像列表

查看web界面中的镜像信息

1.13 添加一个新的网段并让它能够上网

1.13.1 环境准备

   2)主机修改配置,启动eth1网卡(所有节点操作)

查看网卡设备

修改网卡配置

启动网卡

1.13.2 配置neutron服务

修改桥接配置,添加eth1信息

将桥接配置文件发往各个节点

1.13.3 重启服务

1.13.4 配置iptables服务器作子网网关

配置内核转发

配置iptables转发规则

1.13.5 web界面创建子网

   2)配置在子网

网关选择搭建的iptables服务器,经由iptables服务器进行代理上网

   3)配置子网IP地范围,配置完成子网创建成功

   4)创建一个新的实例测试子网

注意:在创建时,网络选择刚刚创建的net172网络

   实例创建完成

   5)登陆控制台

查看网关信息

   检测网络连通性

   至此一个新的子网创建成功

1.14 Cinder服务对接NFS配置

1.14.1 NFS服务部署

安装nfs相关软件包

配置nfs服务

启动nfs服务,并设置开机自启动

1.14.2 测试NFS的可用性

进行挂载测试

写入文件

在服务端查看文件是否写入成功。

1.14.3 修改Cinder节点配置文件

首先我们需要知道,cinder是通过在cinder.conf配置文件来配置驱动从而使用不同的存储介质的, 所以如果我们使用NFS作为存储介质,那么就需要配置成NFS的驱动,

那么问题来了,如何找到NFS的驱动呢?请看下面查找步骤:

[nfs] volume_driver = cinder.volume.drivers.nfs.NfsDriver nfs_shares_config = /etc/cinder/nfs_shares volume_backend_name = nfs

nfs信息文件

1.14.4 重启服务

查看挂载信息

1.14.5 添加NFS存储卷

   2)创建成功

   3)查看卷的详细信息

   nfs服务端,查找到标识一致的文件

至此Cinder对接NFS就完成了

1.15 OpenStack中的VXLAN网络

1.15.1 前期准备

1.15.2 修改控制节点配置

2)修改配置文件

检查网络状态

1.15.3 修改配置计算节点文件

再次检查网络状态

1.15.4 修改dashboard开启路由界面显示

1.15.5 配置VXLAN网络

   2)编辑网络配置,开启外部网络

   3)配置网络

   4)配置子网

   5)创建路由器

创建路由时,注意配置外部网络连接.

   7)创建一台实例,使用配置的VXLAN网络

注意选择配置vxlan的网络配置

   8)为创建的实例配置浮动IP

   配置浮动IP后的实例

1.15.6 连接浮动IP测试

— baidu.com ping statistics — 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 5.687/5.687/5.687 ms

查看当前网络拓扑

   到此VXLAN****网络已实现

1.16 openstack API应用用

官方API列表:https://docs.openstack.org/pike/api/

官方提供了丰富的API接口,方便用户的使用。可以使用curl命令调用API

1.16.1 获取token方法

1.16.2 常用获取命令

使用api端口查看镜像列表

获取roles列表

获取主机列表

获取网络列表

获取子网列表

下载一个镜像

1.17 附录

1.17.1 附录-常见错误

1、配置用户时的错误

2、用户管理时错误

3、未加载环境变量时出错

1.17.2 附录-OpenStack组件使用的默认端口号

<td style="width: 17.62%; border-top: solid #9BBB59 1.0pt; border-left: none; border-bottom: solid #9BBB59 1.0pt; border-right: none; background: #9BBB59; padding: 0cm 5.4pt 0cm 5.4pt; height: 1.15pt;" valign="top" width="17%">
  <p style="text-align: center; layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;" align="center">
    <strong><span style="font-size: 9.0pt; font-family: 'Verdana',sans-serif; color: white;">Default ports</span></strong>
  </p>
</td>

<td style="width: 29.54%; border-top: 1pt solid #9bbb59; border-right: 1pt solid #9bbb59; border-bottom: 1pt solid #9bbb59; border-left: none; background: #9bbb59; padding: 0cm 5.4pt; height: 1.15pt;" valign="top" width="29%">
  <p style="text-align: center; layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;" align="center">
    <strong><span style="font-size: 9.0pt; font-family: 'Verdana',sans-serif; color: white;">Port type</span></strong>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">8776</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">publicurl and adminurl</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">8774</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">publicurl and adminurl</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">8773, 8775</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">5900-5999</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">6080</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">6081</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">6082</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">8386</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">publicurl and adminurl</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">35357</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">adminurl</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">5000</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">publicurl</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">9292</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">publicurl and adminurl</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">9191</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">9696</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">publicurl and adminurl</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">6000, 6001, 6002</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">8004</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">publicurl and adminurl</span>
  </p>
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">8000</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">8003</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
</td>
<td style="width: 17.62%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="17%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">8777</span>
  </p>
</td>

<td style="width: 29.54%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="29%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">publicurl and adminurl</span>
  </p>
</td>

1.17.3 附录-openstack组件使用的默认端口号

<td style="width: 15.6%; border-top: solid #9BBB59 1.0pt; border-left: none; border-bottom: solid #9BBB59 1.0pt; border-right: none; background: #9BBB59; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="15%">
  <p style="text-align: center; layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;" align="center">
    <span style="font-size: 9.0pt; font-family: 'Verdana',sans-serif; color: white;">Default port</span>
  </p>
</td>

<td style="width: 59.38%; border-top: 1pt solid #9bbb59; border-right: 1pt solid #9bbb59; border-bottom: 1pt solid #9bbb59; border-left: none; background: #9bbb59; padding: 0cm 5.4pt;" valign="top" width="59%">
  <p style="text-align: center; layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;" align="center">
    <span style="font-size: 9.0pt; font-family: 'Verdana',sans-serif; color: white;">Used by</span>
  </p>
</td>
<td style="width: 15.6%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="15%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">80</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="59%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">OpenStack dashboard (</span><span style="font-family: 宋体;">Horizon</span><span style="font-size: 10pt; font-family: Verdana, sans-serif;">) when it is not configured to use secure access.</span>
  </p>
</td>
<td style="width: 15.6%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="15%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">8080</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="59%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">OpenStack Object Storage (</span><span style="font-family: 宋体;">swift</span><span style="font-size: 10pt; font-family: Verdana, sans-serif;">) service.</span>
  </p>
</td>
<td style="width: 15.6%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="15%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">443</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="59%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">Any OpenStack service that is enabled for SSL, especially secure-access dashboard.</span>
  </p>
</td>
<td style="width: 15.6%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="15%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">873</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="59%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">OpenStack Object Storage. Required.</span>
  </p>
</td>
<td style="width: 15.6%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="15%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">3260</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="59%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">OpenStack Block Storage. Required.</span>
  </p>
</td>
<td style="width: 15.6%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 35.15pt;" valign="top" width="15%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">3306</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 35.15pt;" valign="top" width="59%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">Most OpenStack components.</span>
  </p>
</td>
<td style="width: 15.6%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="15%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">5672</span>
  </p>
  
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">25672</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="59%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">OpenStack Block Storage, Networking, Orchestration, and Compute.</span>
  </p>
</td>
<td style="width: 15.6%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="15%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">123,323</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="59%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: 宋体;">时间同步</span>
  </p>
</td>
<td style="width: 15.6%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="15%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: Verdana, sans-serif;">11211</span>
  </p>
</td>

<td style="width: 59.38%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="59%">
  <p style="layout-grid-mode: both; margin: 0cm 0cm 15.0pt 0cm;">
    <span style="font-size: 10pt; font-family: 宋体;">缓存服务器</span>
  </p>
</td>

1.17.4 附录-openstack新建云主机流程图

1.17.5 附录-MetaData IP 169.254.169.254说明

OpenStack metadata

虚拟机如何取到Metadata?

为啥是169.254.169.254?

进入命名空间

ns-432508f9-da: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.0.101 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe80::f816:3eff:fedb:5a54 prefixlen 64 scopeid 0x20 ether fa:16:3e:db:5a:54 txqueuelen 1000 (Ethernet) RX packets 3609 bytes 429341 (419.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 777 bytes 89302 (87.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

命名空间中的进程

1.17.6 附录-将控制节点秒变计算节点

1)在控制节点操作

2)修改nova配置文件

3)启动计算节点服务

1.17.7 附录-如何把实例转换为镜像

   设置快照名称

   快照创建文件

   3)在glace服务端查看镜像文件

将生成的镜像文件移动到其他目录

4)在web界面删除刚刚生成的快照

   5)将镜像文件重新上传

6)在查看刚才创建的镜像

   7)使用新镜像创建一台实例

   至此实例转换为镜像完成

1.18 参考文献

1 [openstack官方参考文档] https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/

2 https://zh.wikipedia.org/wiki/%e9%9b%b2%e7%ab%af%e9%81%8b%e7%ae%97

[3] http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html

[4] https://wiki.openstack.org/wiki/Main_Page

[5] https://zh.wikipedia.org/wiki/OpenStack

[6] https://www.cnblogs.com/pythonxiaohu/p/5861409.html

[7] https://linux.cn/article-5019-1.html

[8] https://www.cnblogs.com/endoresu/p/5018688.html

[9] https://developer.openstack.org/api-ref/compute/

<li>
  <a href="#12_OpenStack">1.2 OpenStack简介</a><ul>
    <li>
      <a href="#121">1.2.1 市场趋向</a>
    </li>
    <li>
      <a href="#122">1.2.2 大型用户</a>
    </li>
    <li>
      <a href="#123_OpenStack">1.2.3 OpenStack项目介绍</a>
    </li>
    <li>
      <a href="#124">1.2.4 系统环境说明</a>
    </li>
  </ul>
</li>

<li>
  <a href="#13_OpenStack">1.3 OpenStack基础配置服务</a><ul>
    <li>
      <a href="#131_OpenStack">1.3.1 OpenStack服务部署顺序</a>
    </li>
    <li>
      <a href="#132_yum">1.3.2 配置本地yum源</a>
    </li>
    <li>
      <a href="#133_NTP">1.3.3 安装NTP时间服务</a>
    </li>
    <li>
      <a href="#134_OpenStack">1.3.4 OpenStack的包操作(添加新的计算节点时需要安装)</a>
    </li>
    <li>
      <a href="#135_SQL">1.3.5 SQL数据库安装(在控制节点操作)</a>
    </li>
    <li>
      <a href="#136_NoSQL">1.3.6 NoSQL 数据库</a>
    </li>
    <li>
      <a href="#137">1.3.7 消息队列部署</a>
    </li>
    <li>
      <a href="#138_Memcached">1.3.8 Memcached服务部署</a>
    </li>
    <li>
      <a href="#139">1.3.9 验证以上部署的服务是否正常</a>
    </li>
  </ul>
</li>

<li>
  <a href="#14_Keystone">1.4 Keystone认证服务配置</a><ul>
    <li>
      <a href="#141">1.4.1 创建数据库</a>
    </li>
    <li>
      <a href="#142_keystone">1.4.2 安装keystone</a>
    </li>
    <li>
      <a href="#143">1.4.3 修改配置文件</a>
    </li>
    <li>
      <a href="#144">1.4.4 初始化身份认证服务的数据库(同步数据库)</a>
    </li>
    <li>
      <a href="#145_Fernet_keys">1.4.5 初始化Fernet keys</a>
    </li>
    <li>
      <a href="#146_Apache_HTTP">1.4.6 配置 Apache HTTP 服务器</a>
    </li>
    <li>
      <a href="#147_Apache_HTTP">1.4.7 启动 Apache HTTP 服务并配置其随系统启动</a>
    </li>
    <li>
      <a href="#148_API">1.4.8 创建服务实体和API端点</a>
    </li>
    <li>
      <a href="#149">1.4.9 创建域、项目、用户和角色</a>
    </li>
    <li>
      <a href="#1410_OpenStack">1.4.10 创建 OpenStack 客户端环境脚本</a>
    </li>
  </ul>
</li>

<li>
  <a href="#15_glance">1.5 镜像服务glance部署</a><ul>
    <li>
      <a href="#151">1.5.1 创库授权</a>
    </li>
    <li>
      <a href="#152_glance">1.5.2 创建glance用户和授权</a>
    </li>
    <li>
      <a href="#153_API">1.5.3 创建镜像服务的 API 端点,并注册</a>
    </li>
    <li>
      <a href="#154_glance">1.5.4 安装glance软件包</a>
    </li>
    <li>
      <a href="#155_glance">1.5.5 修改glance相关配置文件</a>
    </li>
    <li>
      <a href="#156">1.5.6 同步数据库</a>
    </li>
    <li>
      <a href="#157_glance">1.5.7 启动glance服务</a>
    </li>
    <li>
      <a href="#158_glance">1.5.8 验证glance服务操作</a>
    </li>
  </ul>
</li>

<li>
  <a href="#16_nova">1.6 计算服务(nova)部署</a><ul>
    <li>
      <a href="#161">1.6.1 在控制节点安装并配置</a>
    </li>
    <li>
      <a href="#162">1.6.2 在计算节点安装和配置</a>
    </li>
    <li>
      <a href="#163">1.6.3 验证服务</a>
    </li>
  </ul>
</li>

<li>
  <a href="#17_Networkingneutron">1.7 Networking(neutron)服务</a><ul>
    <li>
      <a href="#171">1.7.1 安装并配置控制节点</a>
    </li>
    <li>
      <a href="#172">1.7.2 安装和配置计算节点</a>
    </li>
    <li>
      <a href="#173">1.7.3 验证操作</a>
    </li>
  </ul>
</li>

<li>
  <a href="#18_Dashboardhorizon-web">1.8 Dashboard(horizon-web界面)安装</a><ul>
    <li>
      <a href="#181">1.8.1 安全并配置组件(单独主机安装)</a>
    </li>
    <li>
      <a href="#182">1.8.2 修改配置文件</a>
    </li>
    <li>
      <a href="#183">1.8.3 启动服务</a>
    </li>
    <li>
      <a href="#184">1.8.4 验证操作</a>
    </li>
  </ul>
</li>

<li>
  <a href="#19">1.9 启动第一台实例</a><ul>
    <li>
      <a href="#191">1.9.1 创建虚拟网络</a>
    </li>
    <li>
      <a href="#192_m1nano">1.9.2 创建m1.nano规格的主机</a>
    </li>
    <li>
      <a href="#193">1.9.3 生成一个键值对,创建密钥对</a>
    </li>
    <li>
      <a href="#194">1.9.4 增加安全组规则</a>
    </li>
    <li>
      <a href="#195">1.9.5 启动第一台云主机</a>
    </li>
    <li>
      <a href="#196_WEB">1.9.6 在WEB端进行查看</a>
    </li>
    <li>
      <a href="#197_web">1.9.7 使用web界面创建一个实例</a>
    </li>
  </ul>
</li>

<li>
  <a href="#110_cinder">1.10 cinder块存储服务</a><ul>
    <li>
      <a href="#1101">1.10.1 环境准备</a>
    </li>
    <li>
      <a href="#1102">1.10.2 安装并配置控制节点</a>
    </li>
    <li>
      <a href="#1103">1.10.3 安装并配置一个存储节点</a>
    </li>
    <li>
      <a href="#1104_ssd">1.10.4 添加ssd盘配置信息</a>
    </li>
    <li>
      <a href="#1105_Dashboard">1.10.5 在Dashboard中如何创建硬盘</a>
    </li>
    <li>
      <a href="#1106">1.10.6 添加硬盘到虚拟机</a>
    </li>
  </ul>
</li>

<li>
  <a href="#111-2">1.11 添加一台新的计算节点</a><ul>
    <li>
      <a href="#1111">1.11.1 主机基础环境配置</a>
    </li>
    <li>
      <a href="#1112">1.11.2 安装配置计算服务</a>
    </li>
    <li>
      <a href="#1113_neutron">1.11.3 配置neutron网络</a>
    </li>
    <li>
      <a href="#1114">1.11.4 启动计算节点</a>
    </li>
    <li>
      <a href="#1115">1.11.5 验证之前的操作</a>
    </li>
  </ul>
</li>

<li>
  <a href="#112_Glance">1.12 Glance镜像服务迁移</a><ul>
    <li>
      <a href="#1121">1.12.1 数据库迁移</a>
    </li>
    <li>
      <a href="#1122_glance">1.12.2 镜像glance 数据库迁移</a>
    </li>
    <li>
      <a href="#1123_glance">1.12.3 安装glance服务</a>
    </li>
    <li>
      <a href="#1124">1.12.4 迁移原有镜像文件</a>
    </li>
    <li>
      <a href="#1125_keystone_glance">1.12.5 修改现有keystone中 glance服务注册信息</a>
    </li>
    <li>
      <a href="#1126_nova">1.12.6 修改nova节点配置文件</a>
    </li>
    <li>
      <a href="#1127">1.12.7 验证操作</a>
    </li>
  </ul>
</li>

<li>
  <a href="#113-2">1.13 添加一个新的网段并让它能够上网</a><ul>
    <li>
      <a href="#1131">1.13.1 环境准备</a>
    </li>
    <li>
      <a href="#1132_neutron">1.13.2 配置neutron服务</a>
    </li>
    <li>
      <a href="#1133">1.13.3 重启服务</a>
    </li>
    <li>
      <a href="#1134_iptables">1.13.4 配置iptables服务器作子网网关</a>
    </li>
    <li>
      <a href="#1135_web">1.13.5 web界面创建子网</a>
    </li>
  </ul>
</li>

<li>
  <a href="#114_CinderNFS">1.14 Cinder服务对接NFS配置</a><ul>
    <li>
      <a href="#1141_NFS">1.14.1 NFS服务部署</a>
    </li>
    <li>
      <a href="#1142_NFS">1.14.2 测试NFS的可用性</a>
    </li>
    <li>
      <a href="#1143_Cinder">1.14.3 修改Cinder节点配置文件</a>
    </li>
    <li>
      <a href="#1144">1.14.4 重启服务</a>
    </li>
    <li>
      <a href="#1145_NFS">1.14.5 添加NFS存储卷</a>
    </li>
  </ul>
</li>

<li>
  <a href="#115_OpenStackVXLAN">1.15 OpenStack中的VXLAN网络</a><ul>
    <li>
      <a href="#1151">1.15.1 前期准备</a>
    </li>
    <li>
      <a href="#1152">1.15.2 修改控制节点配置</a>
    </li>
    <li>
      <a href="#1153">1.15.3 修改配置计算节点文件</a>
    </li>
    <li>
      <a href="#1154_dashboard">1.15.4 修改dashboard开启路由界面显示</a>
    </li>
    <li>
      <a href="#1155_VXLAN">1.15.5 配置VXLAN网络</a>
    </li>
    <li>
      <a href="#1156_IP">1.15.6 连接浮动IP测试</a>
    </li>
  </ul>
</li>

<li>
  <a href="#116_openstack_API">1.16 openstack API应用用</a><ul>
    <li>
      <a href="#1161_token">1.16.1 获取token方法</a>
    </li>
    <li>
      <a href="#1162">1.16.2 常用获取命令</a>
    </li>
  </ul>
</li>

<li>
  <a href="#117">1.17 附录</a><ul>
    <li>
      <a href="#1171">1.17.1 附录-常见错误</a>
    </li>
    <li>
      <a href="#1172_-OpenStack">1.17.2 附录-OpenStack组件使用的默认端口号</a>
    </li>
    <li>
      <a href="#1173_-openstack">1.17.3 附录-openstack组件使用的默认端口号</a>
    </li>
    <li>
      <a href="#1174_-openstack">1.17.4 附录-openstack新建云主机流程图</a>
    </li>
    <li>
      <a href="#1175_-MetaData_IP_169254169254">1.17.5 附录-MetaData IP 169.254.169.254说明</a>
    </li>
    <li>
      <a href="#1176">1.17.6 附录-将控制节点秒变计算节点</a>
    </li>
    <li>
      <a href="#1177">1.17.7 附录-如何把实例转换为镜像</a>
    </li>
  </ul>
</li>

<li>
  <a href="#118">1.18 参考文献</a>
</li>