云计算与OpenStack
传统的计算模式
计算机系统结构

传统的计算模式是指企业或个人在自己的本地环境中构建、管理和维护硬件设备、操作系统和应用程序,以满足其计算和存储需求。
对于个人用户的场景:需要搭建服务或者使用Linux系统环境时,我们往往需要在本地计算机上搭建虚拟机或者单独购买一套硬件来实现。
对于企业用户的场景:需要对内向员工提供项目管理等等办公服务、对外向用户提供web服务,数据库服务等等,同样需要在企业内部通过搭建数据中心来实现。
- 需要购买和维护物理硬件设备,同时需要专业的IT团队来管理硬件和软件设施。(成本过高)
- 资源利用率可能不高,硬件设备难以进行快速的资源分配和释放。(企业达到一定规模后难以适应多变的需求)
- 扩展时需要购买更多硬件,时间和成本较高。(扩展性差)
- 需要考虑容灾和高可用性,可能需要复杂的架构设计。(安全性需要得到保障)
云计算的概念
云计算的定义: 云计算是一种按使用量付费的模式,它可以实现随时随地,便捷地,随需应变地从可配置计算资源共享池中获取所需的资源(例如,网络、服务器、存储、应用、及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
和传统模式特点比较
资源池化: 传统的虚拟化技术是将单个服务器硬件虚拟成多个虚拟机,其目的也是在于提高服务器资源的利用率。但是,由于单个服务器的CPU、内存、硬盘资源颗粒度较小,因此在虚拟化应用中,经常出现资源配置空洞,要么是CPU核数没有分配完,要么是内存没有分配完,更多的情况是硬盘容量存在大量空闲。而服务器资源池化可以更好的解决上述问题。

云计算的特点
- 资源池化:云计算中的资源(如计算能力、存储、网络等)被集中管理并池化,供多个用户共享。这种资源的共享和动态分配提高了资源的利用率。
- 按需分配: 用户可以根据自己的需求,自主地获取和配置计算资源,无需人工干预。这种自服务模式使用户能够快速获取所需资源,提高了效率。
- 快速弹性扩展: 用户可以根据需要快速扩展或缩减资源,以适应业务的变化。这种弹性特性允许用户在高峰时段获得更多资源,而在低谷时段释放资源。
- 可用性和容灾性:许多云服务提供商提供高可用性和容灾选项,确保服务在故障时能够持续运行,减少了业务中断的风险。
可扩展一方面使得上云的应用能够根据不同时段的业务需求动态调整资源另一方面,企业可以在不停机的情况下增加任意资源;可用性使得服务器出现故障时会无缝切换到资源池上的其他资源,不管是计算资源还是存储设备都能保证24小时不间断提供服务。
基于以上特点总结:用户不需要为应用单独购买服务器、同时不需要付出管理成本,只需要付出租用的成本就可以使用到随时能够扩容的并且有专业人员维护以保障安全的计算服务。
云计算的分类
按服务对象或者运营模式分类
公有云:“公有”反映了这类云服务并非用户所拥有,公有云是面向大众提供计算资源的服务。是由第三方云服务提供商提供资源,如应用和存储,这些资源是在服务商的场所内部署。用户通过Internet互联网来获取这些资源的使用。
公有云的优势是成本低,扩展性非常好。缺点是对于云端的资源缺乏控制、保密数据的安全性、网络性能问题。
规模最大的几个公有云厂商:阿里云、Amazon Web Services(AWS)、Google Cloud私有云:“私有”更多是指此类平台属于非共享资源,而非指其安全优势。私有云是为了一个客户单独使用而构建的,所以这些数据、安全和服务质量都较公有云有着更好地保障。
在私有云模式中,云平台的资源为包含多个用户的单一组织专用。私有云可由该组织、第三方或两者联合拥有、管理和运营。私有云的部署场所可以是在机构内部,也可以在外部。混合云:混合云结合了公有云和私有云的特点,允许数据和应用在这两者之间流动。组织可以在私有云中部署敏感数据或关键业务应用,同时利用公有云的弹性来处理突发业务需求。混合云模型可以最大程度地平衡安全性、灵活性和成本效益。

按服务类型分类

IaaS(Infrastructure as a Service–基础架构即服务):
IaaS提供了基础的计算、存储和网络资源,用户可以在这些资源上构建和管理自己的应用环境。它为用户提供了虚拟化的计算资源,包括虚拟机、存储和网络连接。用户可以根据需要自主配置和管理操作系统、应用程序和数据。阿里云的ECS服务器,腾讯云的CVM服务器
PaaS(Platform as a Service–平台即服务):
PaaS在IaaS的基础上提供了更高层次的服务,除了计算、存储和网络,还包括了开发和部署应用程序所需的平台环境。PaaS提供了开发工具、数据库、中间件和运行时环境等,使开发人员能够更专注于应用程序的开发而不必关心底层基础设施。阿里云的EDAS

SaaS(Software as a Service–软件即服务):
SaaS提供完整的应用程序,用户通过互联网访问这些应用程序,无需安装和维护。SaaS应用程序由云服务提供商托管和维护,用户只需要通过浏览器或移动应用访问应用功能。微软的Microsoft 365,各种在线工具。

OpenStack介绍
OpenStack是一个自由、开源的云计算平台。它主要作为基础设施即服务(IaaS)部署在公有云和私有云中,提供虚拟服务器和其他资源给用户使用。该软件平台由相互关联的组件组成,控制着整个数据中心内不同的厂商的处理器、存储和网络资源的硬件池。用户可以通过基于网络的仪表盘、命令行工具或RESTful网络服务来管理。
OpenStack始于2010年,是Rackspace和美国国家航空航天局的合作项目。截至2012年,它由2012年9月成立的非营利组织OpenStack基金会管理,旨在促进OpenStack软件及其社区。到2018年,已经有500多家公司加入了该项目。在2020年,该基金会宣布它将在2021年更名为Open Infrastructure Foundation(开放基础设施基金会)。
适用范围
OpenStack是基础设施即服务(IaaS)软件,让任何人都可以自行建立和提供云计算服务。
此外,OpenStack也用作建立防火墙内的“私有云”(Private Cloud),提供机构或企业内各部门共享资源。
发展历程
OpenStack每半年会发布一个版本,版本从字母A开始向后按顺序的命名;OpenStack社区为了方便描述,因此他们为每一个字母来进行投票,来选出一个单词。

OpenStack架构

核心组件
- Keystone: 身份认证服务,用于管理用户、项目和角色,并提供认证和授权功能。
- Nova: 计算服务,用于创建和管理虚拟机实例,提供计算资源。
- Neutron: 网络服务,提供网络资源的管理和连接,包括虚拟网络、子网、路由等。
- Glance: 镜像服务,用于管理虚拟机镜像,用户可以从镜像创建虚拟机实例。
- Placement: 该组件于OpenStack Stein版本引入,主要用于优化虚拟机实例的资源分配和调度。
其他常用组件:
- Cinder: 块存储服务,提供虚拟机实例所需的持久性块存储,如挂载到虚拟机的卷。
- Swift: 对象存储服务,用于存储非结构化数据,如文件、图像和视频等。
- Horizon: Web 控制台,提供用户界面,用于管理和监控 OpenStack 系统。

OpenStack本身是一个分布式系统,不但各个服务可以分布部署,服务中的组件也可以分布部署。
这种分布式特性让OpenStack具备极大的灵活性、伸缩性和高可用性。
示例架构
示例架构需要至少两个节点(主机)来启动基本虚拟机或实例。块存储和对象存储等可选服务需要额外的节点。
基本两节点OpenStack部署示例:
控制节点(Controller Node): 这个节点承担了OpenStack核心服务的角色,例如Identity服务 (Keystone)、Dashboard服务 (Horizon)、Compute服务 (Nova API)、网络服务 (Neutron API) 等。这个节点管理OpenStack环境的整体状态。
计算节点(Compute Node): 这个节点用于运行虚拟机实例。虚拟机的资源会在计算节点上分配和运行。它连接到控制节点以获取任务和指令,并与存储和网络资源进行交互。
这种配置适用于非常基本的测试、学习或演示用途,但在生产环境中,为了实现更高的性能、可用性和容错性,通常会使用更多的节点和组件。

使用packstack部署OpenStack平台
资源清单
| 资源名称 | 说明 | 地址 |
|---|---|---|
| openStack-train.iso | Centos + OpenStack平台镜像 |
基础环境配置
节点规划
| 节点名称(主机名) | 外网网卡IP地址(网卡名:ens34) | 内网网卡IP地址(网卡名:ens33) |
|---|---|---|
| controller | 192.168.20.10 | 192.168.10.10 |
| compute | 192.168.20.20 | 192.168.10.20 |
利用快照快速恢复系统
控制节点虚拟机环境准备
虚拟机列表中右键名为
控制节点的虚拟机->快照->快照管理器,选中项目2 系统安装完成后转到并确认。此时虚拟机控制节点已恢复到系统安装完毕后的版本(利用快照管理器可以将虚拟机快速恢复到之前已经保存过的任意状态)。这一步创建好的系统ROOT账户密码
000000
计算节点虚拟机环境准备
右键计算节点打开快照管理器,选中快照
5.3.3设置主机IP地址完成后转到。
此时运行OpenStack所需的双节点系统环境已经创建完成,接下来做基础配置。
虚拟机网络配置
此步骤的配置需要在控制节点和计算节点上完成,每个节点分别有两个网卡需要配置:一个内网网卡和一个外网网卡。
在编辑->虚拟网络编辑器可以为虚拟机配置桥接模式网络连接、NAT 和仅主机模式网络连接。
桥接模式
桥接模式网络连接通过使用主机系统上的网络适配器将虚拟机连接到网络。如果主机系统位于网络中,桥接模式网络连接通常是虚拟机访问该网络的最简单途径。
NAT模式
使用 NAT 模式网络时,虚拟机在外部网络中不必具有自己的 IP 地址。主机系统上会建立单独的专用网络。在默认配置中,虚拟机会在此专用网络中通过 DHCP 服务器获取地址。虚拟机和主机系统共享一个网络标识,此标识在外部网络中不可见。
仅主机模式
“仅主机模式”允许虚拟机仅与主机通信,而无法访问外部网络,适用于需要隔离的测试和开发环境。
编辑->虚拟网络编辑器,右下角更改设置,按照节点规划将
仅主机模式和NAT模式配置为如下图。其中仅主机模式的子网地址为192.168.10.0,NAT模式的子网地址为192.168.20.0。
启动
控制节点虚拟机,在控制节点中使用如下命令编辑网卡ens33的配置文件:vi /etc/sysconfig/network-scripts/ifcfg-ens33编辑文件如下:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static # 1. 配置静态分配ip 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=ens33 UUID=266c663e-d288-4d54-b100-00741dda6c70 DEVICE=ens33 ONBOOT=yes # 2. 配置开机激活网卡 IPADDR=192.168.10.10 # 3. 配置ip地址 NETMASK=255.255.255.0 # 4. 配置子网掩码ens33作为内网网口不需要配置默认网关。
用相同的方法配置外网网卡
ens34,配置如下:TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=n BOOTPROTO=static # 1. 配置静态分配ip 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=ens34 UUID=bf2fdda3-d6bf-4a72-953f-02cd83115887 DEVICE=ens34 ONBOOT=yes # 2. 配置开机激活网卡 IPADDR=192.168.20.10 # 3. 配置ip地址 NETMASK=255.255.255.0 # 4. 配置子网掩码 GATEWAY=192.168.20.2 # 5. 配置网关 DNS1=114.114.114.114 # 6. 配置dns DNS2=8.8.8.8使用命令
ifup + 网卡名激活上一步修改的两个网卡配置[root@localhost ~]# ifup ens33 [root@localhost ~]# ifup ens34使用命令
ip addr查看当前网卡配置:[root@localhost ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:f2:ca:50 brd ff:ff:ff:ff:ff:ff inet 192.168.10.10/24 brd 192.168.10.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet6 fe80::922:6217:cb6c:e63/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:f2:ca:5a brd ff:ff:ff:ff:ff:ff inet 192.168.20.10/24 brd 192.168.20.255 scope global noprefixroute ens34 valid_lft forever preferred_lft forever inet6 fe80::9b23:9dcb:6af7:812d/64 scope link noprefixroute valid_lft forever preferred_lft forever作业1-参考以下命令,使用
ping命令验证当前虚拟机网络,验证完成后截图上传。//验证内网网卡和宿主机之间的网络连通性 [root@localhost ~]# ping -c3 -I ens33 192.168.10.1 PING 192.168.10.1 (192.168.10.1) from 192.168.10.10 ens33: 56(84) bytes of data. 64 bytes from 192.168.10.1: icmp_seq=1 ttl=128 time=0.154 ms 64 bytes from 192.168.10.1: icmp_seq=2 ttl=128 time=0.587 ms 64 bytes from 192.168.10.1: icmp_seq=3 ttl=128 time=0.461 ms//验证外网网卡和外网资源的网络连通性 [root@localhost ~]# ping -c3 -I ens34 www.baidu.com PING www.a.shifen.com (153.3.238.110) from 192.168.20.10 ens34: 56(84) bytes of data. 64 bytes from 153.3.238.110 (153.3.238.110): icmp_seq=1 ttl=128 time=6.73 ms 64 bytes from 153.3.238.110 (153.3.238.110): icmp_seq=2 ttl=128 time=6.99 ms 64 bytes from 153.3.238.110 (153.3.238.110): icmp_seq=3 ttl=128 time=6.96 ms
到目前为止网络配置完成,下一步开始配置本地yum源
配置本地YUM源、FTP服务、防火墙
这一步是加载资源清单中列出的两个镜像源文件到虚拟机
控制节点中。右键虚拟机
控制节点->设置->选择已有的CD/DVD驱动器->浏览,选择本地的openStack-train.iso文件后完成镜像的加载,同时勾选已连接。
重启
控制节点虚拟机,镜像加载到虚拟机控制节点后还需要挂载到系统目录下才能进行读取。首先创建挂载点,挂载驱动器中的镜像到指定目录
[root@localhost ~]# mkdir /opt/openstack # 1. 创建挂载点 [root@localhost ~]# [root@localhost ~]# mount /dev/sr0 /opt/openstack # 2. 挂载openStack-train.iso镜像 mount: /dev/sr0 is write-protected, mounting read-only挂载完成后
df -h查看挂载情况/dev/sr0 16G 16G 0 100% /opt/openstack
这一步配置
控制节点的YUM源,控制节点的源文件在本地。删除现有的配置文件
[root@localhost ~]# rm -rf /etc/yum.repos.d/*.repo使用
vi /etc/yum.repos.d/local.repo创建并编辑文件local.repo,并添加以下配置:[base] name=base baseurl=file:///opt/openstack/base/ gpgcheck=0 enabled=1 [extras] name=extras baseurl=file:///opt/openstack/extras/ gpgcheck=0 enabled=1 [updates] name=updates baseurl=file:///opt/openstack/updates/ gpgcheck=0 enabled=1 [train] name=train baseurl=file:///opt/openstack/train/ gpgcheck=0 enabled=1 [virt] name=virt baseurl=file:///opt/openstack/virt/ gpgcheck=0 enabled=1执行以下命令检查YUM源是否可用:
[root@controller ~]# yum clean all # 1. 清除缓存 Loaded plugins: fastestmirror Cleaning repos: base extras train updates virt Cleaning up list of fastest mirrors [root@controller ~]# yum makecache # 2. 重建缓存 Loaded plugins: fastestmirror Determining fastest mirrors base | 2.9 kB 00:00:00 extras | 2.9 kB 00:00:00 train | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 virt | 2.9 kB 00:00:00 (1/15): base/primary_db | 6.0 MB 00:00:00 (2/15): base/filelists_db | 7.0 MB 00:00:00 (3/15): base/other_db | 2.5 MB 00:00:00 (4/15): extras/filelists_db | 259 kB 00:00:00 (5/15): extras/other_db | 145 kB 00:00:00 (6/15): extras/primary_db | 241 kB 00:00:00 (7/15): train/filelists_db | 3.6 MB 00:00:00 (8/15): train/primary_db | 1.2 MB 00:00:00 (9/15): train/other_db | 465 kB 00:00:00 (10/15): updates/filelists_db | 6.5 MB 00:00:00 (11/15): updates/primary_db | 14 MB 00:00:00 (12/15): updates/other_db | 914 kB 00:00:00 (13/15): virt/filelists_db | 14 kB 00:00:00 (14/15): virt/other_db | 45 kB 00:00:00 (15/15): virt/primary_db | 56 kB 00:00:00 Metadata Cache Created [root@controller ~]# yum repolist # 3. 查看仓库列表 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile repo id repo name status base base 10,039 extras extras 500 train train 3,168 updates updates 3,182 virt virt 63到目前为止
控制节点的YUM源配置完毕,最后在控制节点上设置域名解析、关闭防火墙、安装FTP服务器为计算节点提供服务[root@controller ~]# hostnamectl set-hostname controller # 1. 修改主机名修改完主机名后
ctrl + D退出当前会话重新登录验证主机名设置是否生效。在
/etc/hosts文件最后添加以下两行域名解析192.168.10.10 controller 192.168.10.20 compute修改
/etc/selinux/config文件中的SELINUX=enforcing为SELINUX=disabled[root@controller ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config禁用SELinux和防火墙
[root@controller ~]# setenforce 0 # 1. 禁用SELinux [root@controller ~]# systemctl disable firewalld # 2. 关闭开机启动防火墙 Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@controller ~]# systemctl stop firewalld # 3. 立即关闭防火墙 [root@controller ~]# yum remove -y NetworkManager # 4. 卸载网络管理器安装配置FTP服务端
[root@controller ~]# yum -y install vsftpd # 1. 安装ftp服务端在
/etc/vsftpd/vsftpd.conf文件中加入一行anon_root=/opt,设置匿名用户访问的根目录为YUM源所挂载的目录[root@controller ~]# echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf[root@controller ~]# systemctl start vsftpd # 1. 立刻启动FTP服务端 [root@controller ~]# systemctl enable vsftpd # 2. 设置开机启动 Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
这一步配置
计算节点的YUM源,通过FTP服务访问挂载到控制节点的源文件。修改
计算节点的主机名[root@localhost ~]# hostnamectl set-hostname compute # 1. 修改主机名在
/etc/hosts文件最后添加以下两行域名解析192.168.10.10 controller 192.168.10.20 compute修改
/etc/selinux/config文件中的SELINUX=enforcing为SELINUX=disabled禁用SELinux和防火墙
[root@compute ~]# setenforce 0 # 1. 禁用SELinux [root@compute ~]# systemctl disable firewalld # 2. 关闭开机启动防火墙 Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@compute ~]# systemctl stop firewalld # 3. 立即关闭防火墙 [root@compute ~]# yum remove -y NetworkManager # 4. 卸载网络管理器删除已有配置文件
[root@compute ~]# rm -rf /etc/yum.repos.d/*.repo创建配置文件
/etc/yum.repos.d/local.repo,并添加以下配置:[base] name=base baseurl=ftp://controller/openstack/base/ gpgcheck=0 enabled=1 [extras] name=extras baseurl=ftp://controller/openstack/extras/ gpgcheck=0 enabled=1 [updates] name=updates baseurl=ftp://controller/openstack/updates/ gpgcheck=0 enabled=1 [train] name=train baseurl=ftp://controller/openstack/train/ gpgcheck=0 enabled=1 [virt] name=virt baseurl=ftp://controller/openstack/virt/ gpgcheck=0 enabled=1执行以下命令检查YUM源是否可用:
[root@compute ~]# yum clean all # 1. 清除缓存 Loaded plugins: fastestmirror Cleaning repos: base extras train updates virt Repository base is listed more than once in the configuration Repository extras is listed more than once in the configuration Repository updates is listed more than once in the configuration Cleaning up list of fastest mirrors [root@compute ~]# yum makecache # 2. 重建缓存 Loaded plugins: fastestmirror Repository base is listed more than once in the configuration Repository extras is listed more than once in the configuration Repository updates is listed more than once in the configuration Determining fastest mirrors * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 train | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 virt | 2.9 kB 00:00:00 (1/15): base/primary_db | 6.0 MB 00:00:00 (2/15): base/filelists_db | 7.0 MB 00:00:00 (3/15): base/other_db | 2.5 MB 00:00:00 (4/15): extras/filelists_db | 259 kB 00:00:00 (5/15): extras/other_db | 145 kB 00:00:00 (6/15): extras/primary_db | 241 kB 00:00:00 (7/15): train/filelists_db | 3.6 MB 00:00:00 (8/15): train/primary_db | 1.2 MB 00:00:00 (9/15): train/other_db | 465 kB 00:00:00 (10/15): updates/filelists_db | 6.5 MB 00:00:00 (11/15): updates/primary_db | 14 MB 00:00:00 (12/15): updates/other_db | 914 kB 00:00:00 (13/15): virt/filelists_db | 14 kB 00:00:00 (14/15): virt/other_db | 45 kB 00:00:00 (15/15): virt/primary_db | 56 kB 00:00:00 Metadata Cache Created [root@compute ~]# yum repolist # 3. 查看仓库列表 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile repo id repo name status base base 10,039 extras extras 500 train train 3,168 updates updates 3,182 virt virt 63 repolist: 17,906
作业2-完成上述
yum repolist命令后截图上传。
安装OpenStack平台
继续安装其他软件,
控制节点安装配置deltarpm来兼容packstack[root@controller ~]# yum -y install deltarpm在
/etc/yum.conf文件中加一行禁用deltarpm[root@controller ~]# echo "deltarpm=0" >>/etc/yum.conf计算节点安装配置deltarpm来兼容packstack[root@compute ~]# yum -y install deltarpm在
/etc/yum.conf文件中加一行禁用deltarpm[root@compute ~]# echo "deltarpm=0" >>/etc/yum.conf配置
iptables允许ftp服务的20/21端口编辑文件
/etc/sysconfig/iptables-config,设置第6行IPTABLES_MODULES=值为ip_conntrack_ftpIPTABLES_MODULES="ip_conntrack_ftp"使用
iptables命令添加两行防火墙规则[root@controller ~]# iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT [root@controller ~]# iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT [root@controller ~]# iptables -L [root@controller ~]# iptables-save > /etc/sysconfig/iptables
在控制节点安装packstack
[root@controller ~]# yum install -y openstack-packstack生成配置文件
[root@controller ~]# packstack --gen-answer-file=openstack.txt --os-neutron-l2-agent=openvswitch --os-neutron-ml2-mechanism-drivers=openvswitch --os-neutron-ml2-tenant-network-types=vxlan --os-neutron-ml2-type-drivers=vxlan,flat --provision-demo=n --os-neutron-ovs-bridge-mappings=extnet:br-ex --os-neutron-ovs-bridge-interfaces=br-ex:ens34修改配置文件中的IP地址为内网IP
[root@controller ~]# sed -i 's/192.168.20.10/192.168.10.10/g' openstack.txt修改文件
openstack.txt中计算机点的IP[root@controller ~]# sed -i 's/CONFIG_COMPUTE_HOSTS=.*/CONFIG_COMPUTE_HOSTS=192.168.10.20/g' openstack.txt开始安装OpenStack
packstack --answer-file=openstack.txtpackstack运行结束后如下图

登录OpenStack平台
接下来可以通过预先配置的网址http://192.168.10.10/dashboard访问OpenStack平台
账户信息通过
cat keystonerc_admin查看
作业3-登录OpenStack平台后截图上传