Openstack是目前比较流行的一个实现云计算平台的项目,本文通过云计算概述、Openstack简介、Openstack核心模块、Openstack实战部署这几个方面来介绍Openstack。
一、云计算概述
1.1、 云计算是一个资源池,它为我们提供了诸如水、电、煤气一样的基础服务。
1.2 、云计算是一种按使用量付费的模式,这种模式可以快速、高效地提供网络,服务器,存储,应用软件,服务等,我们不必关心如何实现,所以只需投入很少的管理工作,只需和服务供应商进行很少的交互。
1.3、云计算从广义上可以分为如下几种模式:IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)
1)IaaS:Amazon、阿里云、腾讯云提供的云主机即IaaS,我们拿到的是一台机器,可以自定义操作系统。
2)PaaS:面向开发者,直接给用户提供一个平台来运行用户的程序,早期的idc服务商卖的主机、新浪的sae、阿里云的云数据库等。
3)SaaS:卖的是服务,比如腾讯企业邮箱、印象笔记等
二、Openstack简介
2.1、官网:
2.2、由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目,用Python语言开发,可以实现私有云或者公有云。
2.3、主要有三个最基础组件:计算服务、网络服务、存储服务。
2.4、发布版本 ,目前稳定版本为:Mitaka
三、Openstack核心模块
3.1、6个核心服务
1)nova:计算中心,对比阿里云的ESC,支持kvm,xen等虚拟化技术
2)keystone:认证中心
3)neutron:网络服务中心
4)swift:对象存储服务,存储图片,附件等文件,对比腾讯云的COS
5)cinder:块存储服务,对比云盘
6)glance:镜像管理中心
3.2、其他可选组件
1)HORIZON:控制面板
2)CEILOMETER:提供监控和数据采集
3)HEAT:自动化部署
4)TROVE:数据库应用服务
5)SAHARA:大数据处理
6)IRONIC:物理机管理服务
7)ZAQAR:消息服务
8)MANILA:文件共享服务
9)DESIGNATE:DNS服务
10)BARBICAN:key管理中心
11)MAGNUM:容器
12)MURANO:应用目录
13)CONGRESS:策略即服务
四、Openstack实战部署
4.1、前期准备
1)实验环境:至少两台机器
2)在RHEL7/CentOS7上安装openstack libertyl
官方文档:
3)两台虚拟机,安装centos7系统(准备两个网卡,一个NAT,另一个仅主机)
4)nat网卡设置ip,可以联网,仅主机的网卡只要我们windows可以通就行,主要是用于xshell远程连接
5)关闭selinuxl、关闭iptables
systemctl stop firewalld
systemctl disable firewalld
6)关闭NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
7)CentOS 7配置iptables
8)定义密码,在部署openstack过程中会在多个地方使用到密码,为了方便管理和安全设置,我们需要提前先定义好密码,使用命令mkpasswd -s 0 生成随机字符串
账号 描述 密码Database password Root password for the database tn1Pi6Ytm
ADMIN_PASS Password of user admin 3qiVpzU2x
CEILOMETER_DBPASS Database password for the Telemetry service Czn3bF1hm
CEILOMETER_PASS Password of Telemetry service userceilometer abquh12GU
CINDER_DBPASS Database password for the Block Storageservice O3bwbpoZ3
CINDER_PASS Password of Block Storage service usercinder hf8LX9bow
DASH_DBPASS Database password for the dashboard 5qBZxnn1g
DEMO_PASS Password of user demo 9TtbgaA1q
GLANCE_DBPASS Database password for Image service Zznky4tP0
GLANCE_PASS Password of Image service user glance Wuyaf4cV6
HEAT_DBPASS Database password for the Orchestrationservice b7Fk5wjLg
HEAT_DOMAIN_PASS Password of Orchestration domain 7Gotb3eoH
HEAT_PASS Password of Orchestration service userheat eqQ2jLgz0
KEYSTONE_DBPASS Database password of Identity service f6zx0gURv
NEUTRON_DBPASS Database password for the Networking service quidyOC50
NEUTRON_PASS Password of Networking service userneutron mdcGVl29i
NOVA_DBPASS Database password for Compute service RYgv0rg7p
NOVA_PASS Password of Compute service user nova hsSNsqc43
RABBIT_PASS Password of user guest of RabbitMQ o3NXovnz5
SWIFT_PASS Password of Object Storage service userswift 6ci5xWOdk
METADATA_SECRET m8uhmQTu2
9)设置主机名
两台机器都设置hostname
hostnamectl set-hostname controller
hostnamectl set-hostname compute
编辑/etc/hosts:
192.168.16.111 controller
192.168.16.112 compute
10)同步时间
controller上:
yum install -y chrony
vim /etc/chrony.conf //增加或更改
allow 192.168.16.0/24
保存后,执行
systemctl enable chronyd.service
systemctl start chronyd.service
compute上:
yum install -y chrony
vim /etc/chrony.conf //增加或更改
server controller iburst
保存后,执行
systemctl enable chronyd.service
systemctl start chronyd.service
4.2、安装openstack
1)安装openstack的yum源(两个机器上都操作)
yum install -y centos-release-openstack-liberty
2)升级所有的包(两个机器上都操作)
yum upgrade //结束后重启系统
3)安装openstack 客户端和openstack-selinux
yum install -y python-openstackclient openstack-selinux
以下 4.3-4.12 步骤若无特殊说明则默认表示在 controller 机器上执行操作
4.3、安装sql服务
1)安装
yum install -y mariadb mariadb-server MySQL-python
2)编辑配置文件
vim /etc/my.cnf.d/mariadb_openstack.cnf //加入下面内容
[mysqld]
bind-address= 192.168.16.111
default-storage-engine= innodb
innodb_file_per_table
collation-server= utf8_general_ci
init-connect= 'SET NAMES utf8'
character-set-server= utf8
3)启动mariadb:
systemctl enable mariadb.service
systemctl start mariadb.service
4)安全配置,设置root密码
mysql_secure_installation
设置root密码为:tn1Pi6Ytm
4.4、安装nosql
1)nosql数据库被Telemetry service用到,在这里我们安装的是mongodb
yum install -y mongodb-server mongodb
2)编辑配置文件
vim /etc/mongod.conf //更改如下配置
bind_ip= 192.168.16.111
smallfiles= true
3)启动服务
systemctl enable mongod.service
systemctl start mongod.service
4.5、安装消息队列
1)rabbitmq消息队列服务在openstack中起到非常关键的作用,它好比是一个交通枢纽,各个组件之间的通信由它来完成。
yum install -y rabbitmq-server
2)启动rabbitmq-server服务
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
3)添加openstack用户
rabbitmqctl add_user openstack o3NXovnz5 //用户名为openstack,密码为o3NXovnz5
4)为openstack用户授权
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
允许openstack用户可以配置,可以写,可以读
4.6、增加identity
1、keystone介绍
1)identity即keystone,它是openstack的验证中心,所有的服务都由它来认证。
2)在keyston中有以下角色:tenants(租户或项目)、用户、角色、服务目录和端点