OpenStack

1.认识OpenStack

1.云计算的起源

早在2006年3月,亚马逊公司首先提出弹性计算云服务。2006年8月9日,谷歌公司首席执行官埃里克·施密特(Eric Schmidt)在谷歌搜索引擎大会(SES San Jose 2006)上首次提出“云计算”(Cloud Computing)的概念

2.云计算的基本概念

(1)云计算的定义:云计算是一种按使用量付费的模式,这种模式提供可用的便捷的按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储和应用软件等),这些资源能够被快速提供,只需投入很少的管理工作或与服务供应商进行很少的交互。
(2)云计算的五大特征:

① 按需自助服务:消费者可以单方面部署资源。例如服务器、网络存储,资源是按需自动部署的,不需要与服务供应商进行人工交互。
② 通过互联网获取:资源可以通过互联网获取,并可以通过标准方式访问。例如,通过瘦客户端或富客户端(移动电话、笔记本电脑和工作站等)。
③ 资源池化:供应商的资源被池化,以便以多用户租用模式被不同客户使用。例如,不同的物理和虚拟资源可根据客户需求动态分配和重新分配,通常与地域无关,这些资源包括存储、处理器、内存和网络带宽。
④ 快速伸缩:资源可以弹性地部署和释放,有时是自动化的,以便能够迅速地按需扩大和缩小规模。
⑤ 可计量:云计算系统通过使用一些与服务种类(存储、计算、带宽、激活的用户账号)对应的抽象信息提供计量能力(通常在此基础上实现按使用付费)。

(3)云计算的服务模型SPI
云计算的服务模型SPI由3大服务组成

IaaS     (基础设施即服务)
Saas     (平台即服务)
SaaS	 (软件即服务)

下面为详细的内容

① IaaS:消费者使用"基础计算资源”。资源服务包括处理能力、存储空间、网络组件或中间件服务。消费者能掌控操作系统、存储空间、已部署的应用程序及网络组件(如防火墙、负载均衡器等),但并不掌控云基础架构。如Amazon AWS、Rackspace等。
② PaaS:消费者使用主机操作应用程序。消费者掌控运作应用程序的环境(也拥有主机部分掌控权),但并不掌控操作系统、硬件或网络基础架构。平台通常是应用程序基础架构。如Google App Engine。
③ SaaS:消费者使用应用程序,但并不掌控操作系统、硬件或网络基础架构。它是一种服务观念的基础,软件服务供应商以租赁的概念提供客户服务,而非购买,比较常见的模式是提供一组账号密码。  

(4)云计算四大部署类型

① 私有云:云计算基础设施由一个单一的组织部署和独占使用,可由该组织、第三方或两者的组合来拥有和管理。
② 社区云:云计算基础设施由一些具有共有关注点的组织形成的社区中的用户部署和使用,可由一个或多个社区中的组织、第三方或两者的组合来拥有和管理、运营。
③ 公有云:云计算基础设施被部署给广泛的公众开放地使用。它可能被一个商业组织、研究机构、政府机构或者几者的混合所拥有、管理和运营,被一个销售云计算服务的组织所拥有,该组织将云计算服务销售于一般人或广泛的工业群体。
④ 混合云:云计算基础设施是由两种或两种以上的云(私有、社区或公共)组成,每种云仍然保持独立,但用标准的或专有的技术将它们组合起来,具有数据和应用程序的可移植性。

(5)云计算平台分类

存储型云平台 以数据存储为主
计算型云平台 以数据处理为主
综合云计算平台 计算和数据存储处理兼顾的

2.基础环境和系统准备

1.节点主机名及IP地址规划

在这里插入图片描述

2.各节点安装系统要求

首先创建两台虚拟机
主机要求:主机为双网卡服务器或者PC机,内存为4GB以上,处理器2核以上。
环境要求:操作系统为 CentOS-7-x86_64-DVD-1511.iso和XianDian-IaaS-v2.2.iso

3.配置主机名

配置(控制节点)主机名为controller
配置(实例节点) 主机名为compute
在控制节点使用hostnamectl命令修改主机名

# hostnamectl set-hostname controller

在实例节点使用hostnamectl命令修改主机名

# hostnamectl set-hostname controller

修改完名字重启才能生效

# reboot
4.配置域名解析

在全部节点的/etc/hosts文件中添加域名解析。
在控制节点修改配置文件/etc/hosts

vi /etc /hosts
末尾追加以下内容
172.24.2.10     controller
172.24.2.20     compute

在实例节点修改配置文件/etc/hosts

vi /etc /hosts
末尾追加以下内容
172.24.2.10     controller
172.24.2.20     compute
5.配置环境

关闭防火墙

# systemctl stop firewalld		//关闭Firewalld防火墙服务
# systemctl disable firewalld	//关闭Firewalld防火墙开机自启动

实例节点(compute)配置同上
关闭selinux
配置文件存放位置/etc/selinux/config

# vi /etc/selinux
改SELINUX=enforcing为SELINUX=disabled

修改完配置文件,需要重启后生效,可以使用setenforce 0命令临时生效
关闭selinux的原因:表示系统会收到警告信息,但是不会受到限制,作为selinux的debug模式用处
实例节点(compute)配置同上

6.配置yum源

在这里插入图片描述
(1)建立源子目录

1.controller
2.compute
1.	mkdir  /var/software
2.  mkdir  /var/software
1   添加xiandian镜像和一块50G的硬盘 然后重启虚拟机
2   添加xiandian镜像和一块50G的硬盘 然后重启虚拟机
1	mkdir /mnt/iass       mkdir /mnt/centos  创建挂载点把镜像挂载上去
2	mkdir /mnt/iass       mkdir /mnt/centos  创建挂载点把镜像挂载上去
1   在iass目录下 cp -r iass-repo/ /var/software/
2  在mnt目录下 cp -r iass-repo/ /var/software/
1	在iass目录下 mkdir /var/software/centos7  在centos目录下 cp -r repodata var/software/centos7    cp -r Packages/ /var/software/centos7
2	在mnt目录下 mkdir /var/software/centos7  在centos目录下 cp -r repodata /var/software/centos7  cp -r Packages/ /var/software/centos7

实例节点(compute)配置如上一致
(2)yum源备份

# cd /etc/yum.repo
# mkdir lishi       //创建一个叫临时的目录
# mv * /lishi      //将此目录下的所有文件移动到临时目录中

实例节点(compute)配置如上一致

(3)创建repo文件
在控制节点的/etc/yum.repos.d/ 路径下创建yum.repo文件内容如下

[centos]
name=centos                            			//设置此yum的资源描述名称
baseurl=file:///var/software/centos7/		//设置yum源的访问地址路径
gpgcheck=0                              		//不使用gpg检查gpgkey
enabled=1                               		//启动此yum源
[openstack]
name=OpenStack
baseurl=file:///var/software/iass-repo/
gpgcheck=0
enabled=1 

修改完成之后
清理yum缓存并生成缓存

# yum clean all && yum makecache

实例节点(compute)配置如上一致
(4)配置ip地址
控制节点
修改配置文件/etc/sysconfig/network-scripts/ifcfg-eno16777736, 信息如下

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=17b1974f-49b3-45cf-b2e5-e2133c6c0420
DEVICE=eno16777736
ONBOOT=yes
IPADDR=172.24.2.10
NETMASK=255.255.255.0

注:ifcfg-eno16777736是仅主机模式
对配置文件/etc/sysconfig/network-scripts/ifcfg-eno33554960进行修改

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554960
UUID=40da3afe-717e-492b-a8f6-4a0c63737dfe
DEVICE=eno33554960
ONBOOT=yes
IPADDR=192.168.128.10
NETAMSK=255.255.255.0
GATEWAY=192.168.128.2
DNS1=114.114.114.114

注:ifcfg-eno33554960是NAT模式
修改完成重启网络

# systemctl restart network.service

实例节点
修改配置文件/etc/sysconfig/network-scripts/ifcfg-eno16777736, 信息如下。

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=17b1974f-49b3-45cf-b2e5-e2133c6c0420
DEVICE=eno16777736
ONBOOT=yes
IPADDR=172.24.2.10
NETMASK=255.255.255.0

注:ifcfg-eno16777736是仅主机模式
对配置文件/etc/sysconfig/network-scripts/ifcfg-eno33554992进行修改

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554960
UUID=40da3afe-717e-492b-a8f6-4a0c63737dfe
DEVICE=eno33554960
ONBOOT=yes
IPADDR=192.168.128.20
NETAMSK=255.255.255.0
GATEWAY=192.168.128.2
DNS1=114.114.114.114

注:ifcfg-eno33554992是NAT模式
修改完成重启网络

# systemctl restart network.service

(5)#控制和实例节点
安装iaas-xiandian安装包

# yum install iaas-xiandian -y

进行分区

# fdisk /dev/sdb  //分出两个大小为25G的分区
# mkfs.xfs /dev/sdb1  //进行格式化 
# mkfs.xfs /dev/sdb2  //进行格式化

编辑文件/etc/xiandian/openrc.sh(配置环境变量)
先删除文件中的所有内容在添加如下内容

HOST_IP=172.24.2.10        //仅主机模式的IP地址
HOST_NAME=controller       //控制节点的主机名
HOST_IP_NODE=172.24.2.20   //仅主机模式的IP地址
HOST_NAME_NODE=compute     //实例节点的主机名
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000
KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000
GLANCE_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=eno33554960       //NAT模式的网卡名称
CINDER_DBPASS=000000
CINDER_PASS=000000
TROVE_DBPASS=000000
TROVE_PASS=000000
BLOCK_DISK=sdb1   
SWIFT_PASS=000000
OBJECT_DISK=sdb2
STORAGE_LOCAL_NET_IP=172.24.2.20   //实例节点的仅主机IP地址
HEAT_DBPASS=000000
HEAT_PASS=000000
CEILOMETER_DBPASS=000000
CEILOMETER_PASS=000000
AODH_DBPASS=000000
AODH_PASS=000000

实例节点(compute)配置如上一致

(6)#控制节点和实例节点
执行脚本iaas-pre-host.sh进行安装
初始化配置脚本,一定要执行,如果下面的执行脚本报错,从这一步重新开始

# iaas-pre-host.sh

(7)重启设备服务器

# reboot

(8)部署脚本安装平台
①在控制节点执行脚本iaas-install-mysql.sh进行数据库及消息列表服务安装。

# iaas-install-mysql.sh

②在控制节点执行脚本iaas-install-keystone.sh进行keystone认证服务安装。

# iaas-install-keystone.sh

③在控制节点执行脚本iaas-install-glance.sh进行glance镜像服务安装。

# iaas-install-glance.sh

④在控制节点执行脚本iaas-install-nova-controller.sh进行nova计算服务安装。

# iaas-install-nova-controller.sh

在实例节点执行脚本iaas-install-nova-compute.sh进行nova计算服务安装。

# iaas-install-nova-compute.sh

⑤在控制节点执行脚本iaas-install-neutron-controller.sh进行neutron网络服务安装。

# iaas-install-neutron-controller.sh

注:这个脚本文件有一个地方是错误的,最后一行需要修改一下

# vim /usr/local/bin/iass-install-neutron-controller-gre.sh
# 改systemctl enabled neutron-lbaas-agent为
    systemctl enable neutron-lbaas-agent

在实例节点执行脚本iaas-install-neutron -compute.sh进行neutron网络服务安装。

# iaas-install-neutron-compute.sh

⑧在控制节点执行脚本iaas-install-neutron-controller-vlan.sh进行vlan网络安装配置

# iaas-install-neutron-controller-gre.sh

在实例节点执行脚本iaas-install-neutron-compute-vlan.sh进行vlan网络安装配置

# iaas-install-neutron-compute-gre.sh

⑨在控制节点执行脚本iaas-install-dashboard.sh进行dashboard服务安装。

# iaas-install-dashboard.sh

⑩在控制节点执行脚本iaas-install-cinder-controller.sh进行cinder块存储服务安装。

# iaas-install-cinder-controller.sh

在实例节点执行脚本iaas-install-cinder-compute.sh进行cinder块存储服务安装。

# iaas-install-cinder-compute.sh

⑪在控制节点执行脚本iaas-install-swift-controller.sh进行swift对象存储服务安装。

# iaas-install-swift-controller.sh

在实例节点执行脚本iaas-install-swift-compute.sh进行swift对象存储服务安装。

# iaas-install-swift-compute.sh

⑫在控制节点执行脚本iaas-install-heat.sh进行heat编配服务安装。

# iaas-install-heat.sh

⑬在控制节点执行脚本iaas-install-ceilometer-controller.sh进行ceilometer监控服务安装。

# iaas-install-ceilometer-controller.sh

在实例节点执行脚本 iaas-install-ceilometer-compute.sh进行ceilometer监控服务安装。

# iaas-install-ceilometer-compute.sh

⑭在控制节点执行脚本iaas-install-alarm.sh进行alarm告警服务安装。

# iaas-install-alarm.sh

验证安装基础工作完成
上述操作完成后,打开网页 http://172.24.2.10/dashboard进行验证服务,若看到图2-7 dashboard登录界面,以及管理员账号和密码登录后看到图下 dashboard管理界面,表示安装基础工作正确完成。
在这里插入图片描述
** dashboard登录界面**
在这里插入图片描述

3.认证服务

认证服务的基本概念(Keystone)
在OpenStack框架中,Keystone(OpenStack Identity Service)的功能是负责验证身份、校验服务规则和发布服务令牌的,它实现了OpenStack的Identity API。Keystone可分解为两个功能,即权限管理和服务目录。权限管理主要用于用户的管理授权。服务目录,类似一个服务总线,或者说是整个OpenStack框架的注册表。认证模块提供API服务、 token 令牌机制、服务目录、规则和认证发布等功能。
认证(Authentication)
认证是确认允许一个用户访问的进程。为了确认请求,OpenStack Identity会为访问用户提供证书,起初这些证书是用户名和密码,或用户名和API key。当OpenStack Identity认证体系接受了用户的请求之后,它会发布一个认证令牌(Token),用户在随后的请求中使用这个令牌去访问资源中其他的应用。
证书(Credentials)
用于确认用户身份的数据。例如,用户名、密码或者API key,或认证服务提供的认证令牌。
令牌(Token)
通常指的是一串比特值或者字符串,用来作为访问资源的记号。Token(令牌统一用词)中含有可访问资源的范围和有效时间,一个令牌是一个任意比特的文本,用于与其他OpenStack服务来共享信息,Keystone以此来提供一个central location,以验证访问OpenStack服务的用户。令牌的有效期是有限的,可以随时被撤回。
项目(project)
project即项目,早期版本又称为project,它是各个服务中的一些可以访问的资源集合。例如,通过nova创建虚拟机时要指定到某个项目中,在cinder创建卷也要指定到某个项目中,用户访问项目的资源前,必须与该项目关联,并且指定该用户在该项目下的角色。
平台构建完毕会产生admin、service和demo三个项目。在这些项目中,admin项目代表管理组,拥有平台的最高权限,可以更新、删除和修改系统的任何数据。service代表平台内所有服务的总集合,平台安装的所有服务默认会被加入到此项目中,为后期的统一管理提供帮助,此项目可以修改当前项目下所有服务的配置信息,提交项目的内容以及修改。demo则是一个演示测试项目,没有什么实际的用处。
用户(User)
使用服务的用户,可以是人、服务或系统使用OpenStack相关服务的一个组织。例如,一个项目映射到一个Nova的“project-id”,在对象存储中,一个项目可以有多个容器。根据不同的安装方式,一个项目可以代表一个客户、账号、组织或项目。用户通过Keystone Identity认证登录系统并调用资源。用户可以被分配到特定项目并执行项目相关操作。需要特别指出的是,OpenStack通过注册相关服务用户来管理服务,例如Nova服务注册nova用户来管理相应的服务。对于管理员来说,需要通过Keystone来注册管理用户。
角色(Role)
Role即角色,Role代表一组用户可以访问的资源权限,例如Nova中的虚拟机、Glance中的镜像。Users可以被添加到任意一个全局的role或项目内的role中。在全局的role中,用户的role权限作用于所有的项目,即可以对所有的项目执行role规定的权限。在项目内的role中,用户仅能在当前项目内执行role规定的权限。
使用云服务的用户不局限于人,也可以是系统或者服务。用户可以通过指定的令牌登录系统并调用资源。用户可以被分配到特定项目并执行项目相关操作。
平台构建完毕,系统会创建_member_、admin两个用户权限,在系统中,_member_表示系统的普通用户的权限,拥有系统的正常使用和对当前项目的管理权限。admin角色是代表系统的管理员身份,对系统有绝对的管理权限。
认证服务流程
用户请求云主机的流程涉及认证Keystone服务、计算Nova服务、镜像Glance服务,在服务流程中,令牌(Token)作为流程认证传递,具体服务申请认证机制流程,如图所示。
在这里插入图片描述

1.操作过程

如果在操作的过程当中出现这种报错,更新一下配置文件
在这里插入图片描述

# source /etc/keystone/admin-openrc.sh       //更新配置文件

Keystone服务安装完毕,通过请求身份令牌来验证服务

# openstack  --os-project-name admin --os-domain-name demo --os-username admin --os-password 000000 --os-auth-url http://controller:35357/v3 token issue      //以admin用户访问http://controller:35357/v3地址获取token值

(1)创建用户
创建一个名称为“alice”账户,密码是“mypassword123”,邮箱为“alice@example.com”

# openstack user create alice --password mypassword123 --email alice@example.com  --domain demo 

扩展:创建用户命令个格式

openstack user create [--domain <domain>]
[--password <password>]
[--email <email-address>]
[--enable | --disable]
<name>
其中,参数<name>代表新建用户名。

(2)创建项目
创建一个名为“acme”项目

# openstack project create --domain demo acme

扩展:创建项目命令格式

openstack project create [--domain <domain>]
                              [--description <description>]
                              [--enable | --disable]
                              <project-name>
其中,参数<project-name>代表新建项目名,参数 <description>代表项目描述名

(3)创建角色
创建一个角色“compute-user

# openstack role create compute-user

扩展:创建角色命令格式

openstack role create <name>

(4 ) 绑定用户和项目权限

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值