天天看点

OpenStack基础环境 [一]OpenStack基础环境 [一]

OpenStack基础环境 [一]

标签(空格分隔): openstack

时间:2016年11月22日

博客地址:www.abcdocker.com

openstack介绍

 openstack是一个云平台管理的项目,它不是一个软件。也就是说我们可以使用

openstack

来管理我们一个数据中心大量资源池。它里面包含了很多子

项目

OpenStack基础环境 [一]OpenStack基础环境 [一]

openstack包含三大项:

计算

网络

存储

  openstack主要目标是来

简化资源

的管理和分配,把

计算

网络

存储

。三大项虚拟成

三大资源池

,例如需要计算资源我这里可以提供,需要网络资源这里也可以提供以及存储资源的需求,对外提供

api

,通过

api

进行交互

  openstack的设计基本上是按照

亚马逊

进行设置的,我们可以将

openstack

理解为开源版本的

aws

。因为它很多地方都参考

亚马逊

进行操作的,而且

openstack

的很多

api

跟亚马逊是相通的。

  openstack火起来的原因首先是

apache

旗下的开源软件,第二它是由

python

进行编写

(因为python比较简单,深受技术人员的喜欢)

openstack官方网站:http://www.openstack.org

openstack版本介绍

OpenStack基础环境 [一]OpenStack基础环境 [一]

 openstack版本是每

6

个月发布一次,每次版本的顺序按照

A-Z

进行排序。

那么我们应该如何选择版本呢?

  我们选择版本的时候,除了新版本的那些功能不得不用,那我们可以选择新的版本。其实我们可以选择稍微落后的一个版本。上述图不够准确,现在已经达到N版。国内openstack是从E班开始火的。因为E版本当时是比较完善的,国内openstack最火的时候是在G版的时候。现在国内不论是传统行业还是互联网行业都在使用openstack

openstack架构

OpenStack基础环境 [一]OpenStack基础环境 [一]
服务名称 项目名称 描述
Dasgviard Horizon 基于Openstack API接口使用diango开发的Web管理
Compute Nova 通过虚拟化技术提供计算资源池
Networking Neutron 实现了虚拟机的网络资源管理。
Storage (存储)
Object Storage Swift 对象存储,适用于“一次写入、多次读取”
Block Storage Cinder 块存储,提供存储资源池
Share Services (共享服务)
Identify Service Keystone 认证管理
Image Service Glance 提供虚拟镜像的注册和存储管理
Telemetry Ceilometer 提供监控和数据采集、计量服务
Higher-level Services (高层服务)
Orchestration Heat 自动化部署的组件
Database Service Trove 提供数据库应用服务
OpenStack基础环境 [一]OpenStack基础环境 [一]

解释:这里面所有的服务都是围绕着

VM

进行提供服务的,虚拟机需要什么资源,我们就提供什么资源

  我们可以将服务分为

两大类

,一个是服务的

提供者

,一个是服务的

消费者

。提供者是我可以提供某个服务,消费者是我可以用到这个服务。

  openstack默认是没有

创建

虚拟机的功能,是通过调用

KVM

来创建虚拟机还可以调用

esxi

来创建虚拟机,总之openstack没有创建虚拟机的功能都是通过调用其他服务来进行操作。openstack就是一个框架,它可以调用其他的服务,所以openstack也就是一个

管理平台

Openstack服务介绍

**

MySQL

:为各个服务提供数据存储

RabbitMq

:为各个服务之间通信提供认证和服务注册

Keystone

:为各个服务器之间通讯提供认证和服务注册

Glance

:为虚拟机提供镜像管理

Nova

:为虚拟机提供计算资源

Neutron

:为虚拟机提供网络资源**

Openstack环境准备-MySQL、RabbirMQ

中文文档:http://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/

提示:这个中文文档是直接翻译过来的,所以会有很多不通顺的地方

特别提示:环境请和我保持一致!!!!!!!!保持一致!保持一致!保持一致!

本次我们安装Openstack M版,M版是在2016-4月发布的

环境

[root@linux-node1 ~]# cat /etc/redhat-release 
CentOS Linux release  (Core) 
[root@linux-node1 ~]# uname -r
-.el7.x86_64
[root@linux-node1 ~]# cat /etc/hosts
   localhost localhost.localdomain localhost4 localhost4.localdomain4
::         localhost localhost.localdomain localhost6 localhost6.localdomain6
 linux-node1.abcdocker.com
 linux-node2.abcdocker.com
           

安装时间同步

[root@linux-node1 ~]# yum install ntpdate -y
[root@linux-node1 ~]# ntpdate time1.aliyun.com
[root@linux-node1 ~]# timedatectl set-timezone Asia/Shanghai  #设置时区
另一种设置时区方法
[root@linux-node1 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
           

提示: 生产环境中必须保证openstack节点时间同步,如果时间不同步是无法创建虚拟机的

openstack基础软件包安装

基础软件包需要在所有的

Openstack

节点上进行安装,包括

控制

节点和

计算

节点

1、安装EPEL仓库

2、安装Openstack仓库

[root@linux-node1 ~]# yum install -y centos-release-openstack-mitaka
#安装完成后会在/etc/yum.repos.d/下生成CentOS-OpenStack-mitaka.repo
           

3、安装Openstack客户端

[root@linux-node1 ~]#  yum install -y python-openstackclient
提示:会把openstack常用的客户端都进行安装
           

4、安装openstack SELinux管理包

如果我们没有进行关闭

selinux

openstack-selinux

就会自动帮我们设置

OpenStack基础环境 [一]OpenStack基础环境 [一]

RabbitMq在openstack几大用处

1.做服务之间相互通讯的工具

2.信息同步(异步执行)

如果没有

RabbitMq

服务之间将无法进行

通讯

提示:如果是生产环境,数据库是需要做备份的,否则数据库一挂数据将会丢失,openstack也将无法进行提供服务

安装数据库

[root@linux-node1 ~]# yum install -y mariadb mariadb-server python2-PyMySQL
centos7 默认安装mysql 会在/etc/my.cnf里面includedir /etc/my.cnf.d/ 所以我们需要将配置文件放在这个目录下就可以生效
[root@linux-node1 ~]# cd /etc/my.cnf.d/
[root@linux-node1 my.cnf.d]# vim openstack.cnf

[mysqld]
bind-address = .   #监听的IP地址(也可以写0.0.0.0)
default-storage-engine = innodb  #默认存储引擎[innodb]
innodb_file_per_table       # 使用独享表空间
max_connections =           #最大连接数是4096 (默认是1024)
collation-server = utf8_general_ci  #数据库默认校对规则
character-set-server = utf8 #默认字符集
           

启动数据库

[root@linux-node1 ~]# systemctl start mariadb
[root@linux-node1 ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
           

启动后我们需要进行检查

为了保证数据库服务的安全性,运行

mysql_secure_installation

脚本。特别需要说明的是,为数据库的root用户设置一个适当的密码。

[root@linux-node1 ~]# mysql_secure_installation
#它会帮我们删除测试数据库等
           

数据库安装完成后我们需要给我们后面所要用到的服务创建用户并进行授权

创建认证服务的数据库并进行授权

[[email protected] ~]# mysql -uroot -p123456
创建keystone数据库
create database keystone;
grant all on keystone.* to 'keystone'@'localhost' identified by 'keystone';
grant all on keystone.* to 'keystone'@'%' identified by 'keystone';    
           

创建镜像数据库并进行授权

创建glance数据库
create database glance;
grant all on glance.* to 'glance'@'%' identified by 'glance';
grant all on glance.* to 'glance'@'localhost' identified by 'glance';
           

创建虚拟化数据库并进行授权

创建nova数据库
create database nova;
grant all on nova.* to 'nova'@'localhost' identified by 'nova';
grant all on nova.* to 'nova'@'%' identified by 'nova';
           

因为Nova有2个项目,所以我们要创建2个数据库

创建nova-api数据库

create database nova_api;
rant all on nova_api.* to 'nova_api'@'localhost' identified by 'nova_api';
grant all on nova_api.* to 'nova_api'@'%' identified by 'nova_api';
           

提示:nova_api是新版本才有

创建网络资源管理数据库

create database neutron;
grant all on neutron.* to 'neutron'@'%' identified by 'neutron';
grant all on neutron.* to 'neutron'@'localhost' identified by 'neutron';
           

刷新

flush privileges;
           

安装消息队列

rabbitmq

[root@linux-node1 ~]# yum install rabbitmq-server -y
消息队列的端口是
           

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

[root@linux-node1 ~]# systemctl enable rabbitmq-server.service
[root@linux-node1 ~]# systemctl start rabbitmq-server.service
           

因为我们一会要使用

openstack

,所以我们在

rabbitmq

上创建一个

openstack

用户

[root@linux-node1 ~]# rabbitmqctl add_user openstack openstack
[root@linux-node1 ~]# rabbitmqctl add_user用户 密码
           

openstack

用户读写权限

[[email protected] ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
.*分别代表配置、写入、读取
           

提示:如果rabbitmq没有启动说明主机名没有解析

开启rabbitmq监控插件

rabbitmq

有很多插件,我们可以使用

rabbitmq-plugins list

查看可用插件

rabbitmq_management

插件提供一个web界面,所以我们要将它开启

[root@linux-node1 ~]# rabbitmq-plugins enable rabbitmq_management
rabbitmq启动之后会监听
           
OpenStack基础环境 [一]OpenStack基础环境 [一]

**访问路径:http://ip:15672

默认Username:guest

默认Password:guest**

示例图

OpenStack基础环境 [一]OpenStack基础环境 [一]

提示:这里不能使用

openstack

用户进行登陆,因为我们如果想使用openstack用户进行登陆还需要在

web

页面进行授权

现在我们就进行

rabbitmq

的管理界面了

OpenStack基础环境 [一]OpenStack基础环境 [一]

rabbitmq默认有一个

http

api

,我们如果想监控 可以使用http的api进行监控。里面基本上想监控的东西都有,可以通过脚本来获取通过

url

来判断等。

OpenStack基础环境 [一]OpenStack基础环境 [一]

zabbix相关文章:http://www.abcdocker.com/zabbix

基础介绍完!

继续阅读