OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合,由NASA(美国国家航空航天局)和Rackspace合做研发并发起,以Apache许可证受权的开源代码项目
OpenStack为私有云和公有云提供可扩展的弹性的云计算服务,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台
OpenStack覆盖了网络、虚拟化、操做系统、服务器等各个方面,它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不一样,被分解成核心项目、孵化项目,以及支持项目和相关项目,每一个项目都有本身的委员会和项目技术主管,并且每一个项目都不是一成不变的,孵化项目能够根据发展的成熟度和重要性,转变为核心项目
核心组件
一、计算(Compute)Nova:一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机建立、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操做,配置CPU、内存等信息规格
二、对象存储(Object Storage)Swift:一套用于在大规模可扩展系统中经过内置冗余及高容错机制实现对象存储的系统,容许进行存储或者检索文件,可为Glance提供镜像存储,为Cinder提供卷备份服务
三、镜像服务(Image Service)Glance:一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW二、Raw、VDI、VHD、VMDK),有建立上传镜像、删除镜像、编辑镜像基本信息的功能
四、身份服务(Identity Service)Keystone:为OpenStack其余服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles
五、网络&地址管理(Network)Neutron:提供云计算的网络虚拟化技术,为OpenStack其余服务提供网络链接服务。为用户提供接口,能够定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN,插件架构支持许多主流的网络厂家和技术,如OpenvSwitch
六、块存储(Block Storage)Cinder:为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的建立和管理,如建立卷、删除卷,在实例上挂载和卸载卷
七、UI 界面(Dashboard)Horizon:OpenStack中各类服务的Web管理门户,用于简化用户对服务的操做,例如:启动实例、分配IP地址、配置访问控制等
八、测量(Metering)Ceilometer:能把OpenStack内部发生的几乎全部的事件都收集起来,而后为计费和监控以及其它服务提供数据支撑
九、部署编排(Orchestration)Heat:提供了一种经过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署
十、数据库服务(Database Service)Trove:为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务linux
准备Centos7虚拟机,配置IP地址和hostname,同步系统时间,关闭防火墙和selinux,修改ip地址和hostname映射git
ip | hostname |
---|---|
192.168.29.130 | controller |
部署keystone、glance、nova、neutron组件
部署详细步骤可参考:http://www.javashuo.com/article/p-dszayery-mn.htmlgithub
安装依赖服务web
#安装下载依赖包的服务 [root@controller ~]# yum install yum-utils gettext -y #下载依赖包 [root@controller ~]# yumdownloader openstack-dashboard --resolve --destdir=/tmp/package [root@controller ~]# cd /tmp/package #安装依赖包 [root@controller ~]# yum localinstall *.rpm -y
下载解压源码包
从github上可获取源码包
https://github.com/openstack/horizon/tree/stable/queens数据库
[root@controller ~]# unzip horizon-stable-queens.zip [root@controller ~]# mv horizon-stable-queens/ /horizon-stable-queens/
修改配置文件apache
[root@controller ~]# cp /horizon-stable-queens/openstack_dashboard/local/local_settings.py.example /horizon-stable-queens/openstack_dashboard/local/local_settings.py [root@controller ~]# vi /horizon-stable-queens/openstack_dashboard/local/local_settings.py DEBUG = False WEBROOT = '/dashboard' ALLOWED_HOSTS = ['horizon.example.com','*' ] SESSION_ENGINE = 'django.contrib.sessions.backends.cache' OPENSTACK_API_VERSIONS = { "identity": 3, "image": 2, "volume": 2, } OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': 'controller:11211', }, } OPENSTACK_HOST = "controller" OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
编译安装django
[root@controller ~]# cd /horizon-stable-queens/ [root@controller horizon-stable-queens]# ./manage.py compilemessages [root@controller horizon-stable-queens]# ./manage.py collectstatic [root@controller horizon-stable-queens]# ./manage.py compress [root@controller horizon-stable-queens]# ./manage.py make_web_conf --wsgi [root@controller horizon-stable-queens]# ./manage.py make_web_conf --apache > /etc/httpd/conf.d/openstack-dashboard.conf
修改配置文件浏览器
[root@controller ~]# vi /etc/httpd/conf.d/openstack-dashboard.conf WSGIScriptAlias /dashboard /horizon-stable-queens/openstack_dashboard/wsgi/horizon.wsgi <Location "/dashboard"> Require all granted </Location> Alias /dashboard/static /horizon-stable-queens/static <Location "/dashboard/static"> SetHandler None </Location>
修改所属用户及用户组服务器
[root@controller ~]# chown -R apache:apache /horizon-stable-queens
重启服务网络
[root@controller ~]# systemctl restart httpd memcached
浏览器访问:http://ip/dashboard