OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。

        OpenStack 是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(简称IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。

        OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,孵化项目可以根据发展的成熟度和重要性,转变为核心项目。下面列出了10个核心项目(即OpenStack服务)。

计算(Compute):Nova

        一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。自Austin版本集成到项目中。

对象存储(Object Storage):Swift

        一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。自Austin版本集成到项目中

镜像服务(Image Service):Glance

        一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中。

身份服务(Identity Service):Keystone

        为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。

网络&地址管理(Network):Neutron

        提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。自Folsom版本集成到项目中。

块存储 (Block Storage):Cinder

        为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。自Folsom版本集成到项目中。

UI 界面 (Dashboard):Horizon

        OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。自Essex版本集成到项目中。

测量 (Metering):Ceilometer

        像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。自Havana版本集成到项目中。

部署编排 (Orchestration):Heat #

        提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。自Havana版本集成到项目中。

数据库服务(Database Service):Trove

        为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。自Icehouse版本集成到项目中。

RDO 单节点部署 openstack (Havana)

        RDO是由红帽RedHat公司推出的部署OpenStack集群的一个基于Puppet的部署工具,可以很快地通过RDO部署一套复杂的OpenStack环境,当前的RDO默认情况下,使用Neutron进行网络管理,默认部署的是OpenStack Havana版本。

下面是RDO单节点部署的简单配置:(所用系统为rhel7.1)

安装packstack

yum install openstack-packstack -y

安装openstack

ssh-keygen
packstack --gen-answer-file=answer.txt #生成问答文件
vim answer.txt #编辑问答文件
    CONFIG_NTP_SERVERS=172.25.254.251 #用于同步时间
    CONFIG_PROVISION_DEMO=n #取消示例
    CONFIG_KEYSTONE_ADMIN_PW=westos #管理员admin的密码将用来登录web页面进行配置
    CONFIG_HORIZON_SSL=y #开启加密协议
packstack --answe-file=answer.txt #执行RDO安装

看到下图表示成功

wKiom1d1GbiTNr4ZAAGg08WD8G0908.png-wh_50

登录网页https://172.25.254.103/dashboard进行配置

wKioL1d1GczDwrSfAASBHyHa_UY093.png-wh_50

创建项目和用户:

点击Admin--->Identity Panel--->Projects---->Create Projects创建项目

wKioL1d1GiXDGtsvAAB2NhoWWAM873.png-wh_50

这里只添加了Project info里的Name其他两项没有改动

点击Admin--->Identity Panel--->Users---->Create User添加用户

wKiom1d1GjLCjpThAAC_FhgV1EM281.png-wh_50

用新建的用户登录,并自定义网路设置: 创建外部网络:

wKiom1d1Gp2QC046AALGvN-_dGQ820.png-wh_50

点击Project--->Network--->Networks--->Create Network

wKiom1d1Grqjt2qmAABetBPK49o214.png-wh_50

wKioL1d1GruyWDp5AACcBBG8aiE953.png-wh_50

wKioL1d1GruwlLqyAABnipS8TXs353.png-wh_50

点击Admin--->Networks--->编辑public

wKioL1d1GvrhxVtyAACIDJyxukY141.png-wh_50

创建内网:

点击Project--->Network--->Networks--->Create Network

wKiom1d1GwygPBoYAABnbiM0EMs141.png-wh_50

wKioL1d1Gx3wBMM1AACibQq8Tv4044.png-wh_50

wKioL1d1Gx3zHHaqAABf3zmXomk093.png-wh_50

新建路由:

点击Project--->Network--->Routers--->Create Router

wKiom1d1GzLi5T0YAAA3SdV5epo735.png-wh_50

创建完后点击Gateway

wKioL1d1G2nixhB9AAB_DHYr7Ko948.png-wh_50

点击新建的路由添加Interfaces

wKiom1d1G5OSLXnDAACs5VuUMEk420.png-wh_50

点击Project--->Network--->Network Topology可以看到网络拓扑图

wKioL1d1G7_B7fg8AAB2cqvRpWQ668.png-wh_50

为了能够访问Floating IP需要重新配置网络

cat /etc/sysconfig/network-scripts/ifcfg-eno1       DEVICE="eno1"
    ONBOOT=yes
    HWADDR=84:2B:2B:FC:AF:68
cat /etc/sysconfig/network-scripts/ifcfg-br-ex
    DEVICE="br-ex"
    ONBOOT=yes
    BOOTPROTO=none
    IPADDR=172.25.254.103
    NETMASK=255.255.255.0
ovs-vsctl add-port br-ex eno1 ; systemctl restart network
ovs-vsctl show #查看接口状态

wKioL1d1G9SQTY5LAAEeUAKDa_c245.png-wh_50

创建镜像:

点击Project--->Compute--->p_w_picpaths--->Create p_w_picpath

wKioL1d1HBeTzpIjAADf_fKk21U396.png-wh_50

wKiom1d1HDiy9UfvAABtxRcQLVw449.png-wh_50

设置安全组规则:

点击Project--->Compute--->Access&Security--->Create Security

wKioL1d1HEeSx***AABaufzEBgo068.png-wh_50

点击安全组的Manage Rules--->add roule添加规则

wKioL1d1HGShW5rqAAD4A7hVZ7g254.png-wh_50

wKiom1d1HHHjoZ7WAAEFxwauwCc424.png-wh_50

wKioL1d1HH-ibyReAACkkcCbPJw724.png-wh_50

点击Project--->Compute--->Access&Security--->Key Pairs创建密钥用于云主机的访问

wKioL1d1HJHwYe1hAAB6gjGrzYU546.png-wh_50

添加云主机类型:

点击Admin--->System Panel--->Flavors--->Create Flavor

wKiom1d1HKHzE_MWAACb3-l_9fw805.png-wh_50

wKiom1d1HOHQPdt5AADWdJqvNvo948.png-wh_50

添加云主机:

点击Project--->Compute--->Instances--->Launch instance

wKiom1d1HO6Bnkt7AAD1h7VEyBo592.png-wh_50

wKiom1d1HQKhGMA1AAByEcGqNYU642.png-wh_50

wKioL1d1HQLAXUS6AACDAL_mFGo460.png-wh_50

后面两个选项没有填写

创建成功后点击vm1的More--->Associate Floating IP 绑定浮动ip

wKioL1d1HTjCdAiMAAB5afbURQY841.png-wh_50

wKiom1d1HVLR1XilAABqTXc29xc982.png-wh_50

如果没有点击‘+’获取IP

wKiom1d1HV_wr-hqAABe2Y1FIrY391.png-wh_50

点击More--->Console进入云主机控制台

wKioL1d1HW_z8wxYAABNOjVlhtk304.png-wh_50

之后我们就可一进入云主机了root用户的密码为redhat

wKioL1d1HX2wN0USAAA84UApr6M966.png-wh_50

此外我们还可以用生成的key来远程登录云主机

ssh -i examplekey.pem cloud-user@172.25.9.2

注意key文件的权限要为600

wKioL1d1HY_zq9wRAABm80TjRzI489.png-wh_50