一、Openstack基础环境
1、Openstack介绍
Openstack是一个云平台管理的项目,它不是一个软件。也就是说我们可以使用openstack来管理我们一个数据中心大量资源地。它里面包含了很多子项目。
2、Openstack包含三大项:计算、网络、存储
Openstack主要目标是来简化资源的管理和分配,把计算、网络、存储三大项虚拟成三大资源地,例如需要计算资源我这里可以提供,需要网络资源这里也可以提供以及存储资源的需求,对外提供api,通过api进行交互。
3、Openstack架构图
Compute (Nova) :计算服务,管理VM的生命周期
Identity Service (Keystone) :为其他自建提供认证和权限管理服务
Image Service (Glance) :镜像服务,管理VM镜像
Networking (Neutron) :网络服务,为其他组件提供网络连接服务
Dashboard (Horizon): 仪表板,为用户提供一个基于web的自服务Portal
Object Storage (Swift): 提供对象存储服务
Block Storage (Cinder) :提供块存储服务
Orchestration (Heat) :提供资源编排能力
Telemetry (Ceilometer) :提供监控告警和计量计费服务
Database Service (Trove) :提供数据库服务
Data Processing (Sahara) :提供在OenStack上构建大数据服务的能力
4、Openstack服务介绍
Mysql:为各个服务提供数据存储
RabbitMq:为各个服务之间通信提供认证和服务注册
Keystone:为各个服务器之间通讯提供认证和服务注册
Glance:为虚拟机提供镜像管理
Nova:为虚拟机提供计算资源
Neutron:为虚拟机提供网络资源
5、RabbitMQ在openstack的几大用处
1)做服务之间相互通讯的工具
2)信息同步(异步执行)
如果没有RabbitMQ,服务之间将无法进行通讯
二、Openstack环境准备-Mysql、RabbitMQ
环境
主机网络
1)配置网络接口
添加网卡
启动eth1网卡
ifup eth1
配置域名解析
1)设置节点主机名为 controller
2)编辑 /etc/hosts
2、安装时间同步
主节点服务器
1)安装软件包
Yum install chrony -y
2)编辑 /etc/chrony.conf 文件,按照环境要求,添加时间同步
3)启动 chronyd服务并将其配置为开机自启动:
其他节点服务器同计算节点一样
4)检测时间是否同步
chronyc sources -v #出现^*是同步成功。若出现^?,检查防火请是否关闭。
其他节点服务器
3、Openstack包
1)配置yum源,将安装openstack所需的安装包放在/root/mitaka/mitaka下
添加
2)yum源更新
以下均在控制节点
3)安装openstack客户端
yum install python-openstackclient -y
4)安装 openstack-selinux 软件包以便自动管理 OpenStack 服务的安全策略
如果我们没有进行关闭selinux,openstack-selinux就会自动帮我们设置
4、SQL数据库
大多数 OpenStack 服务使用 SQL 数据库来存储信息。 典型地,数据库运行在控制节点上。
注意:如果是生产环境,数据库是需要做备份的,否则数据库一但挂掉数据将会丢失,openstack也将无法进行提供服务。
1)安装数据库
2)
- 创建并编辑 /etc/my.cnf.d/openstack.cnf,然后完成如下动作:
在 [mysqld] 部分,设置 ``bind-address``值为控制节点的管理网络IP地址以使得其它节点可以通过管理网络访问数据库:
在[mysqld] 部分,设置如下键值来启用一起有用的选项和 UTF-8 字符集:
3)启动数据库服务,并将其配置为开机自启:
4)为了保证数据库服务的安全性,运行mysql_secure_installation脚本,为数据库的root用户设置一个适当的密码。(密码为:westos)
5)登陆数据库,创建数据库
5.1 在配置openstack身份认证服务前,创建keystone数据库,并对keystone数据库进行授权
5.2 创建glance数据库,对glance数据库授予权限
5.3 创建nova_api和nova数据库,对其数据库授予权限
5.4 创建openstack网络(neutron)服务之前。需要创建一个neutron数据库,对其数据库授予适当的访问权限
5.5 创建和配置块存储服务之前,需要创建cinder数据库,允许cinder数据库访问权限
5、消息队列
OpenStack 使用 message queue 协调操作和各服务的状态信息。消息队列服务一般运行在控制节点上。OpenStack支持好几种消息队列服务包括 RabbitMQ, Qpid, 和 ZeroMQ。不过,大多数发行版本的OpenStack包支持特定的消息队列服务。
1)安装RabbitMQ消息队列服务
yum install rabbitmq-server -y
2)启动消息队列服务并将其配置为随系统启动:
3)添加 openstack 用户:
4)给openstack用户配置写和读权限:
5)打开rabbitmq消息队列管理器
rabbitmq-plugins enable rabbitmq_management
6)查看5672端口是否打开
7)在浏览器上访问172.25.88.1:15672,打开rabbitmq图形管理器
登陆用户、密码均为:guest
查看openstack用户是否创建成功及其权限
5、Memcached
认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它的安全.
1)安装软件包:
yum install memcached python-memcached
2)启动Memcached服务,并且配置它随机启动
3)更改memcache的配置文件
Vim /etc/sysconfig/memcached
4)重新启动memcached服务,查看memcached的服务端
三、认证服务
1、认证服务的安装和配置
在配置 OpenStack 身份认证服务前,你必须创建一个数据库和管理员令牌。
1)生成一个随机值在初始的配置中作为管理员的令牌。
使用带有``mod_wsgi``的Apache HTTP服务器来服务认证服务请求,端口为5000和35357
2)安装openstack-keystone httpd mod_wsgi
3)编辑文件 /etc/keystone/keystone.conf 并完成如下动作:
在[DEFAULT]部分,定义初始管理令牌的值:
在 [database] 部分,配置数据库访问:
在[token]部分,配置Fernet UUID令牌的提供者。
4)初始化身份认证服务的数据库:
5)初始化Fernet keys:
2、配置Apache HTTP服务器
1)编辑/etc/httpd/conf/httpd.conf`文件,配置ServerName`选项为控制节点:
2)用下面的内容创建文件
/etc/httpd/conf.d/wsgi-keystone.conf
3)启动 Apache HTTP 服务并配置其随系统启动:
4)查看5000,35357端口是否打开
3、创建服务实体和API端点
身份认证服务提供服务的目录和他们的位置。每个你添加到OpenStack环境中的服务在目录中需要一个 service 实体和一些 API endpoints 。
默认情况下,身份认证服务数据库不包含支持传统认证和目录服务的信息。你必须使用:keystone-install 章节中,用命令
openssl rand-hex 10为身份认证服务创建的临时身份验证令牌用来初始化的服务实体和API端点。
你必须使用``–os-token``参数将认证令牌的值传递给:openstack 命令。类似的,你必须使用``–os-url`` 参数将身份认证服务的 URL传递给 openstack 命令或者设置OS_URL环境变量
1)配置认证令牌:
2)配置端点URL:
3)配置认证 API 版本:
4)创建服务实体和API端点
4.1在你的Openstack环境中,认证服务管理服务目录。服务使用这个目录来决定您的环境中可用的服务。
创建服务实体和身份认证服务:
4.2 创建认证服务的 API 端点: