OpenStack云计算平台搭建与管理(openEuler)(微课版) 教案全套姚骏屏 第1-17讲 步入云计算的世界 - OpenStack云计算平台运维_第1页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 教案全套姚骏屏 第1-17讲 步入云计算的世界 - OpenStack云计算平台运维_第2页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 教案全套姚骏屏 第1-17讲 步入云计算的世界 - OpenStack云计算平台运维_第3页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 教案全套姚骏屏 第1-17讲 步入云计算的世界 - OpenStack云计算平台运维_第4页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 教案全套姚骏屏 第1-17讲 步入云计算的世界 - OpenStack云计算平台运维_第5页
已阅读5页,还剩137页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE76云计算基础平台搭建与应用课程教案授课题目:步入云计算的世界教学时数:1授课类型:☑理论课□实践课教学目的、要求:了解云计算的发展了解云计算的概念与特征教学重点:云计算的由来云计算的基本特征教学方法和手段:通过微课讲解教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:从我们自己的生活当中进行调查,我们接触到的有哪些云计算应用?它们都有些什么样的共同点?云计算的出现与大数据技术的发展密不可分。“大数据”是指公司在日常运营中生成、累积的用户行为数据。这些数据的规模非常庞大,增长非常迅速,如何存放数据成为了一个难题。教学引入:大学生小王的一天是这么度过的:早上起来先听一曲“云音乐”,打开“云存储”查看昨天在云计算协会里领到的任务,再通过“云会议”召集项目组成员对工作任务进行讨论,最后大家决定通过“云办公”协同完成。今天的工作任务就是调研云计算是什么?它是如何影响着我们的世界?教学内容与教学设计:1.1云计算的定义随着大数据时代的来临,需要存储量更大、运算速度更快的数据中心来存储呈指数增长的数据。因此许多大公司都自建了自己的数据中心,如图1.1所示。图1.1一个云计算数据中心这些数据中心为了给将来的数据留有余量,其规模通常都会建设得比当前实际使用量更大。此时这些公司发现自己还得为这些空闲的运算能力、存储空间承担管理及电力成本,非常浪费。而同时一些小公司虽然也有数据存储及数据挖掘的需要,但是苦于没有能力打造自己的数据中心。那是不是可以想一个办法让大公司闲置的运算资源通过收取一定的费用租给小公司使用呢?基于这种考虑,亚马逊公司(Amazon)在2002年首次推出了AmazonWebService(AWS),它就是云计算平台的最初模型。2006年谷歌公司(Google)CEO埃里克·施密特首次提出“云计算”(CloudComputing)的概念。从此,云计算作为一个名词概念正式出现,开启了云计算飞速发展的时代。对于到底什么是云计算,根据定义者所在的角度不同存在多种解释。现阶段广为接受的是美国国家标准与技术研究院(NIST)的定义:“云计算是一种按使用量付费的模式,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(例如:网络、服务器、存储、应用及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。”简而言之,云计算是一种大规模服务器集群——“云”,通过网络为用户提供的一种按需付费使用并可以弹性扩展的服务模式。比如,你需要一台电脑或者存储空间亦或是一款网络应用等,只需要付一定的费用向“云”去租用。这个租用过程就像家里用水电一样,用多少付多少费用,不用时可以由“云”快速回收,不再产生费用。“云计算技术”就是保证这种租用模式可以实现并保证其安全的技术,它是由许多现代信息技术所组成,如其中的虚拟化技术可以将多台物理主机联合起来,虚拟成更多的计算机为多个用户提供服务;分布式存储技术将数据存放在不同的物理设备中,以保证数据的高速存取和数据安全。由于“云”有着超大规模的特点,因此单位使用成本非常的便宜。用户用低廉的租用成本就可以使用到可以随时扩容的并由专业人员维护保证安全的计算服务。故而,如图1.2所示,云计算已经成为了现代信息技术发展的基础,同时已经应用到了社会的各个方面,如云存储、云办公、云医疗、云电视、云音乐等,可以毫不夸张地说,目前我们已经进入“云”的时代。图1.2云计算提供的服务1.2云计算的分类1.2.1按服务对象分类云计算按照服务的对象可以分为:公有云、私有云、混合云,如图1.3所示。图1.3公有云、私有云、混合云公有云(PublicCloud)我们可以把公有云看成是一个饭店,它为每一个进入到饭店的用户服务。公有云一般可通过Internet使用,可在整个开放的公有网络中向所有人提供服务。国内主要公有云服务商有:阿里云、腾讯云、华为云、天翼云、移动云等。目前阿里云市场占有率最高,是亚太地区第一大“云”。私有云(PrivateCloud)我们可以把私有云看成是一个企业的内部食堂,它只为该企业内部用户服务。私有云是为一个用户(或一个企业)单独使用而构建的,该用户拥有该云的全部资源并自行管理与运维。私有云一般用于银行、医院、学校、政府等对数据安全和共享都有着较高需求的单位。混合云(HybridCloud)混合云是公有云和私有云两种服务方式的结合。比如我们既想享受食堂的食物安全又想享用大饭店的特色菜肴,显然同时使用饭店和食堂是一种解决方案。同理由于安全问题,并非所有的企业信息都能放置在公有云上,因此很多企业会使用混合云模式:将敏感私密数据放本地私有云上,而对外服务则放置在公有云上。1.2.2按服务类型分类云计算按照提供的服务类型可以分为三类,即基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。它们位于彼此之上,底层为上层提供支持,如图1.4所示。图1.4云计算服务类型基础设施即服务(IaaS)IaaS(InfrastructureasaService):基础设施即服务,它是云计算主要的服务类型之一,既在“云端”根据需要虚拟化出如计算机、存储、网络等设备为用户提供服务。比如有一个用户在云端租用了一台电脑(云主机),他就完全可以像操作本地电脑一样操作该云主机,比如亲自安装自己需要的操作系统、安装应用软件、部署自己的网络服务等。因此,你要在网上租一台完整计算机的话请找IaaS云平台。平台即服务(PaaS)PaaS(PlatformasaService):平台即服务,它是在“云端”提供开发平台和测试环境为用户(一般是软件开发人员)使用。这个开发平台提供了一些成熟的软件构件可以嵌入到用户开发的产品中使用,比如云地图、微信小程序等,都是由PaaS云平台提供的服务。用户可以使用简单的几行代码就可以将PaaS云平台提供的服务嵌入到自己的软件中实现复杂功能。因此,如果你要开发一款网络软件,需要实现地图功能,你可以寻找提供地图服务的PaaS平台的帮助。软件即服务(SaaS)SaaS(SoftwareasaService):软件即服务,它通过互联网面向最终用户,提供按需付费使用的应用程序。如钉钉远程办公、微软的在线文档编辑、WPS在线文档管理、腾讯云会议等都属于“SaaS云平台”提供的网络应用软件,可以在云上直接使用。因此,如果你不想下载安装而想直接使用网络应用,去找SaaS平台是没错的。作业和思考题:简述云计算的定义。简述云计算的两种分类方式。简述公有云和私有云的区别。如果需要在云上租用一台完整的服务器,应该向“IaaS”、“PaaS”、“SaaS”哪种云平台申请?云计算基础平台搭建与应用课程教案授课题目:一个优秀的IaaS云平台——OpenStack教学时数:1授课类型:☑理论课□实践课教学目的、要求:了解OpenStack的起源了解OpenStack的功能了解OpenStack的组件教学重点:OpenStack的组件及组件功能教学方法和手段:通过微课讲解教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:通过上一个任务对云计算的了解,小王对云计算的功能、特点与分类有了一定的了解,也产生了浓厚的兴趣。这一次,他想自己尝试做一个能提供IaaS服务的云平台,将一台高性能主机变成几台云主机提供给云计算协会的同学使用。要想实现这个目标,本任务中他要进行调研决定选用什么软件来搭建云计算平台。要求学生去调研市场上主流云平台。教学引入:市面上能提供IaaS平台服务的软件有很多款,每一款都有自己的特色。其中目前全世界市场占有率最大的是VMware公司的产品,它是一款闭源产品,性能可靠。但是它高昂的价格对于小王这样的学生来说是无法承受的。OpenStack是一款免费的开源应用,同时也具有很大的市场影响力,许多公司的云计算产品均是在此基础上二次开发而来。小王决定先对OpenStack进行了解。教学内容与教学设计:2.1OpenStack的起源与应用OpenStack是一个针对IaaS云平台的开源云计算管理平台项目,由NASA(美国国家航空航天局)和美国Rackspace公司在2010年合作研发,是当今最具影响力的云计算管理工具。它可以通过命令或者基于Web的可视化控制面板来管理云端的资源池(服务器、存储和网络等)。通过它可以很轻松的构建和管理一个IaaS云平台,该云平台既可以用于私有云也可以用于公有云。图2.1OpenStack的商标目前OpenStack系统或其演变版本正被广泛应用在各行各业,用户包括思科、华为、英特尔、IBM、99Cloud、希捷等。OpenStack采用Python语言开发,支持KVM、Xen、Lvc、Docker等虚拟化软件,通过调用这些虚拟化软件来构建虚拟机(也称为云主机)为用户服务。图2.2OpenStack提供的IaaS服务如图2.2所示,OpenStack是一种云操作系统,它可以在标准硬件的基础上创建和管理多个云主机。云主机和一般电脑一样,可以在上面安装操作系统和用户应用。它拥有三个主要部分:计算部分负责创建和管理云主机;存储部分为云主机提供存储空间;网络部分将云主机及外部网络连接起来形成网络。2.2OpenStack的组件构成OpenStack结构如图2.3所示,主要包括Keystone、Glance、Nova、Neutron四个核心项目及几十个正式项目和大量孵化项目。由于构建一个IaaS基础云计算平台只要四个核心项目,因此本书重点讲解四个核心项目的构建和运维技术,并采用Horizon项目提供的WEB服务(Dashboard)来进行对云平台的可视化管理。图2.3OpenStack组件结构图认证组件“Identity”项目名:Keystone,为其他OpenStack组件如Glance、Nova等提供认证和授权服务。由于整个OpenStack是由众多组件组成的一个系统,这些独立的组件是否允许接入系统或者允许使用其他组件的服务,需要一个统一进行权限认证的组件,Keystone就是这个“认证机构”。镜像管理组件“Image”项目名:Glance,用来管理云主机的磁盘镜像和快照的组件,可以进行创建或删除镜像、创建或删除快照等操作。我们可以把镜像看成是云主机上一个已经安装好操作系统和应用软件的磁盘。镜像可以秒克隆出多个相同内容的镜像,为不同的云主机服务。云主机管理组件“Compute”项目名:Nova,在OpenStack云操作系统中对云主机(也称实例)进行管理的组件,可以进行如云主机生成、调度、回收等操作。网络服务组件“Network”项目名:Neutron,曾用名为Quantum。Neutron是OpenStack中提供网络服务的核心组件,由它来管理云主机之间的网络。管理组件“Dashboard”项目名:Horizon,主要提供了一个名为Dashboard的Web服务,实现对云平台的可视化管理。如图2.4所示为Dashboard的管理界面。图2.4Dashboard可视化管理组件2.3OpenStack的版本发展OpenStack版本更新非常快,几乎每半年就发行一个新版本。本书采用OpenStack的第二十版本“Train”。不同版本间在安装和运维上存在着一些细微的区别,请读者选用时注意。不同于其他软件的版本号采用数字编码,OpenStack采用一个单词来描述不同的版本,其中单词首字母指明版本的新旧。比如版本“Train”就比之前的“Stein”版本要新。发行时间表可以参考官方网站“/”。图2.5OpenStack各个版本发布时间从图2.5我们可以看到Train版在2019年10月16日发布,而Wallaby版也就是W版正在开发中,预计是在2021年4月发布。作业和思考题:简述OpenStack的核心组件功能。(2)OpenStack的“Queens”版和“Victoria”版哪个更晚发行?云计算基础平台搭建与应用课程教案授课题目:第3讲OpenStack双节点云平台硬件准备教学时数:1授课类型:R理论课R实践课教学目的、要求:能够安装VMware虚拟软件能够用VMware安装OpenEuler操作系统能够用VMware进行克隆教学重点:用VMware安装OpenEuler教学方法和手段:通过微课讲解跟着视频实作教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:通过上一个任务的调研,了解到了OpenStack市场占有率大和开源免费的特点,小王决定就采用OpenStack来搭建IaaS云计算平台。由于OpenStack需要Linux操作系统支持,小王需要给物理机安装上一款Linux操作系统。请学生自行了解有哪些Linux操作系统。教学引入:目前市面上存在多个Linux版本,大都支持OpenStack的安装。作为国内服务器领先者:“OpenEuler”操作系统当然也支持。另外,OpenStack通常采用多台服务器来构建云平台,但是小王只有一台电脑,所以决定采用VMware虚拟机软件来安装OpenEuler操作系统。教学内容与教学设计:3.1创建与配置Vmware虚拟机以下操作在已安装好的虚拟化软件“VMwareWorkstation17”上进行。宿主机内存要求大于8G(VMware支持内存的“超算”)、硬盘空余空间大于200G,安装有“Windows64位操作系统”。3.1.1新建虚拟机进入新建虚拟机向导单击文件→新建虚拟机菜单,进入到图3.1新建虚拟机向导。图3.1新建虚拟机向导选择“自定义(高级)”选项,单击“下一步”按钮。选择虚拟机硬件兼容性图3.2虚拟机硬件兼容性保持默认设置,单击“下一步”按钮。选择安装操作系统图3.3安装客户机操作系统在图3.3中选择“稍后安装操作系统”,单击“下一步”按钮。选择操作系统类型图3.4选择客户机操作系统在图3.4中选择Linux单选框,并选择版本为“Linux5.x64”位。单击“下一步”按钮。命名虚拟机图3.5命名虚拟机在虚拟机名称输入框中可以设置该虚拟机的名称,位置输入框为该虚拟机文件所存放的位置。设置好后单击“下一步”按钮。配置处理器图3.6处理器配置根据自己电脑的配置选择适当的虚拟机处理器及内核的数量,选择好后单击“下一步”按钮。设置虚拟机内存图3.7设置虚拟机内存在图3.7中设置虚拟机的内存,建议设置为4G及以上,设置好以后单击“下一步”按钮。选择网络类型图3.8选择网络类型在图3.8中选择“使用仅主机模式网络”,然后单击“下一步”按钮。选择I/O控制器类型图3.9选择I/O控制器类型保持默认“LSILogic”选项,然后单击“下一步”按钮。选择磁盘类型图3.10选择磁盘类型保持默认“SCSI”选项,单击“下一步”按钮。选择磁盘图3.11选择磁盘选择“创建新虚拟磁盘”,单击“下一步”按钮。指定磁盘容量图3.12指定磁盘容量在图3.12中设置磁盘大小,建议100GB以上,不要选择立即分配所有磁盘空间,让磁盘文件根据使用情况逐渐增长。选择将虚拟磁盘存储为单个文件或者拆分成多个文件皆可。所有设置完成后单击“下一步”按钮。指定磁盘文件图3.13指定磁盘文件在图3.13中给刚创建的磁盘文件命名,该文件格式是“vmdk”。完成以后将在指定文件夹下创建该名称的磁盘文件,系统将安装在这个磁盘上。设置好以后单击“下一步”按钮。准备创建虚拟机图3.14准备创建虚拟机在图3.14中单击“完成”按钮,稍等直到VMware虚拟机创建成功。添加第二块网卡图3.15虚拟机管理在图3.15中单击编辑虚拟机设置链接,进入图3.16。图3.16虚拟机设置在图3.16中可以看到现在虚拟机已经存在一块仅主机模式的网络适配器(网卡),现在需要再添加一块网卡。单击“添加”按钮,弹出“添加硬件向导”对话框,如图3.17所示。图3.17添加硬件在图3.17中选择“网络适配器”选项,单击“完成”按钮,弹出“虚拟机设置”对话框,如图3.18所示。图3.18设置新增网卡在图3.18中配置新增的“网络适配器2”的网络连接模式为NAT模式,然后单击“确定”按钮。至此,我们得到了一台具有双网卡的主机。接下来给创建的虚拟机搭建一个虚拟双网卡网络,使它能与宿主机(安装VMware的主机)进行通信并能够通过宿主机连接上互联网。3.1.2配置虚拟网络进入虚拟网络编辑器依次单击主界面菜单中的“编辑”→“虚拟网络编辑器”,弹出“虚拟网络编辑器”对话框,如图3.19所示。图3.19虚拟网络编辑器接下来,单击“更改设置”按钮,并在弹出框中确认相应管理员权限。编辑虚拟网络——仅主机模式设置图3.20主机模式网络配置选择网卡“VMnet1”(类型仅主机模式),填入子网IP:“”,子网掩码:“”,如图3.20所示。然后单击“DHCP设置”按钮,进入到图3.21进行DHCP设置。图3.21主机模式网络DHCP设置在图3.21中填入相应的起始与结束IP地址,单击“确定”按钮。编辑虚拟网络——NAT模式设置图3.22NAT模式网络设置选择网卡“VMnet8”(类型NAT模式)。如图3.22所示,填入子网IP:“”,子网掩码:“”。然后单击“NAT设置”按钮,弹出“NAT设置”对话框,如图3.23所示。图3.23NAT网关设置在图3.23中设置NAT网关IP:“”,所有虚拟机将通过该网关通过宿主机连接互联网。注意,网关不能设置为该网段的起始IP:“”,因为该地址已经默认给名为“VMnet8”的虚拟网卡使用了。接下来单击“DNS设置”按钮进入图3.24。图3.24DNS服务器设置在图3.24中配置DNS服务器。这里我们选择容易记忆的中国电信公众DNS服务器“14”为首选服务器,谷歌公司提供的全球DNS服务器“”做备用服务器。单击“确定”按钮关闭DNS设置界面。再单击图3.22中的DHCP设置按钮,进入图3.25。图3.25NAT网络DHCP设置在图3.25中,设置好DHCP自动分配的起始与结束的IP地址,单击“确定”按钮关闭设置。3.1.3开启处理器虚拟化引擎由于将在VMware虚拟出来的虚拟机中进一步安装OpenStack云平台来进行新的虚拟化操作(如创建新的虚拟机),因此需要开启VMware的处理器虚拟化引擎,使VMware虚拟机能够获得本机(物理机)的硬件虚拟化特性,从而提高在虚拟机上再次虚拟化(嵌套虚拟化)的能力。在虚拟机控制台左侧菜单选择要管理的虚拟机,得到图3.26。保持虚拟机关闭的情况下,单击处理器(方框处)弹出图3.27。图3.26虚拟机控制台图3.27虚拟机处理器设置在图3.27中将右边虚拟化引擎(方框里)的所有选项都选上(至少保证第一项和第三项勾选上),点击确定按钮完成虚拟化引擎设置。现在已经完成了虚拟机的创建,但它只是一台还没有安装操作系统的裸主机而已。接下来的工作需要给这个裸主机安装上操作系统。作业和思考题:(1)在VMware虚拟机中,如果NAT模式虚拟网络的网段为:/24,那么默认的NAT网关是多少?(2)在VMware虚拟机中,如果仅主机模式虚拟网络的网段为:/24,那么宿主机中虚拟网卡 VMnet1的默认的IP地址是多少?(3)VMware虚拟机的内存大小能不能超过宿主机的内存大小?(5)OpenEuler的超级用户名是什么?(6)OpenEuler文件系统的根分区是什么?云计算基础平台搭建与应用课程教案授课题目:第4讲OpenStack双节点云平台网络环境准备教学时数:1授课类型:R理论课R实践课教学目的、要求:能够配置Linux网卡能够更改主机名能够配置hosts能够关闭防火墙教学重点:配置双主机的网卡IP地址教学方法和手段:通过微课讲解跟着视频实作教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:OpenEuler操作系统安装好以后,小王发现自己还不会使用Linux的指令来管理操作系统。由于安装和运维OpenStack云平台必须要使用Linux操作指令,所有小王决定学习和OpenStack安装和运维密切相关的Linux指令。常用的Linux服务器管理指令按主要功能分为:系统管理(包括服务器关闭与重启、服务器状态监控、用户及用户组管理等)、文件管理(文件与文件夹的查询、新增、删除、重命名等)、网络管理(网络状态检测、网络连接情况检测等)。锻炼自己Linux操作能力最好的方式是动手反复实践。教学引入:现在我们已经有两台安装好操作系统的主机了,他们如何通信呢?显然需要去给每台主机设置IP地址,使它们处于同一网段内才可以通信。教学内容与教学设计:4.1配置IP地址由于计算节点主机克隆于控制节点主机,因此其内部软硬件配置和控制节点主机保持了一致,包括网卡配置。由于在同一个网络中不允许出现两个相同的IP,因此我们要将计算节点主机的网卡IP更改掉。更改计算节点内网网卡IP#cd/etc/sysconfig/network-scripts/#viifcfg-ens33#这里的ifcfg-ens33是内网网卡对应的配置文件,请根据实际名称更改。更改IPADDR=0,保存退出。更改计算节点外网网卡IP#viifcfg-ens34#这里的ifcfg-ens34是外网网卡对应的配置文件,请根据实际名称更改。更改IPADDR=0,保存退出。重启并查看网络#systemctlrestartnetwork#重启网络#ipa#查看更改后的网卡设置更改了IP以后,其后的所有操作都可以通过SSH客户端远程连接主机进行操作了。4.2更改主机名我们发现登录以后两台虚拟机命令行前面都是“[root@localhost~]”,从上面看出它们的主机名都是“localhost”,无法区分。我们通常会给主机取一个名字(主机名),以后可以通过主机名实现对相应计算机的管理。查看主机名[root@localhost~]#hostname得到结果:localhost.localdomain这里的“localhost.localdomain”就是该计算机默认的主机名。更改主机名本书介绍两种常用的更改主机名的方法,做实验时任选其一即可。方法一:更改“/etc/hostname”文件[root@localhost~]#vi/etc/hostname删除原有的“localhost.localdomain”主机名,将控制节点的主机名更改为“controller”,将计算节点的主机名更改为“compute”。更改完成后需要重新启动主机,使更改生效。[root@localhost~]#reboot方法二:利用hostnamectl命令命令格式:hostnamectlset-hostname<主机名>这条命令会自动将“/etc/hostname”文件内容更改。控制节点运行:[root@localhost~]#hostnamectlset-hostnamecontroller#给控制节点更名计算节点运行:[root@localhost~]#hostnamectlset-hostnamecompute#给计算节点更名此方法会自动更改“/etc/hostname”文件,不需要重启系统,只需退出当前登录或者用SSH客户端重新连接一次就可以。[root@localhost~]#exit#退出当前登录重新进入系统后,可以看到控制节点命令模式最左边部分变成了“[root@controller~]”,而计算节点最左边部分变成了“[root@compute~]”。4.3配置hosts“/ext/hosts”文件作用就是将一些常用的域名与其对应的IP地址建立关联,使我们通过域名访问时可以转换为对应IP地址进行访问。我们可以利用它将主机名和IP地址绑定,以后应用主机名就等同于使用对应的IP地址,可以提高工作效率。修改控制节点主机hosts文件打开hosts文件进行编辑[root@controller~]#vi/etc/hostslocalhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6以上两行是系统自带的,不需要改动它,它将“localhost”与IP地址“”进行了绑定。增加主机名与IP地址的映射在文件最后面增加两行映射:localhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain60 controller0 compute增加的两行配置是将controller和compute主机名和对应的内网IP进行了绑定。以后使用主机名就如同使用内网IP是一样的。修改计算节点主机hosts文件修改内容和控制节点是一样的,都是将主机名与内网网卡IP进行绑定。打开hosts文件进行编辑[root@compute~]#vi/etc/hostslocalhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6增加主机名与IP地址的映射在文件最后面增加两行映射localhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain60 controller0 compute4.4关闭防火墙防火墙是在内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。OpenStack有自己的一套防火墙,因此需要将Linux系统自带的SELinux(Security-EnhancedLinux)

防火墙关闭,以免造成冲突。在控制节点和计算节点均进行以下操作:编辑SELinux防火墙的配置文件#vi/etc/selinux/config将其中的“SELINUX=enforcing”更改为“SELINUX=disabled”,这就将SELinux安全子系统设置为关闭,下次开机时就不会启动了。关闭防火墙#systemctlstopfirewalld#停用防火墙#systemctldisablefirewalld#系统启动时禁用防火墙#reboot#重启系统4.5验证结果在计算节点测试连通性[root@compute~]#pingcompute[root@compute~]#pingcontroller在控制节点测试连通性[root@controller~]#pingcontroller[root@controller~]#pingcompute作业和思考题:让学生根据自己做的情况填写报告自检表4.1网络环境配置自检工单检验内容检验方法合格标准检测结果失败原因成功失败从控制节点到计算节点的连通检测控制节点ping计算节点的内网IP地址能够ping通控制节点ping计算节点的外网IP地址能够ping通控制节点ping计算节点的主机名能够ping通从计算节点到控制节点的连通检测计算节点ping控制节点的内网IP地址能够ping通计算节点ping控制节点的外网IP地址能够ping通计算节点ping控制节点的主机名能够ping通从宿主机到控制节点的连通检测宿主机ping控制节点的内网IP地址能够ping通宿主机ping控制节点的外网IP地址能够ping通从宿主机到计算节点的连通检测宿主机ping计算节点的内网IP地址能够ping通宿主机ping计算节点的外网IP地址能够ping通云计算基础平台搭建与应用课程教案授课题目:第5讲基础环境配置——安装OpenStack框架教学时数:0.5授课类型:R理论课R实践课教学目的、要求:能够配置Linux网卡能够更改主机名能够配置hosts能够关闭防火墙教学重点:配置双主机的网卡IP地址教学方法和手段:通过微课讲解跟着视频实作教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:检查自己前面的两台虚拟主机和网络是否配置成功,保证前面完成的情况下进入这一节。教学引入:OpenStack是一个云平台框架,它包含有很多独立的组件。在组件安装前需要先将这个软件框架安装起来,以后组件才能一个一个往里面放。教学内容与教学设计:在控制节点与计算节点均需要执行以下操作。安装OpenStacktrain版软件框架#yuminstallcentos-release-openstack-train-y升级所有软件包#yumupgrade-y这条命令会自动检查所有可以升级的软件(不包括系统内核)进行自动升级。【提示】升级完成以后我们会看到“/etc/yum.repos.d”下已经被移除的repo文件又回来了,我们需要将这些repo文件删除掉。#rm-rf/etc/yum.repos.d/C*.repo安装OpenStack平台管理客户端#yuminstallpython-openstackclient-y安装客户端以后,我们就可以用“openstack”这个命令管理云平台了。安装OpenstackSELinux防火墙管理包#yuminstallopenstack-selinux-y本节完成后请填写“项目评测”中的“OpenStack平台框架安装自检工单”,确保该工作已经正确完成。作业和思考题:让学生根据自己做的情况填写报告自检表5.1OpenStack平台框架安装自检工单检验内容检验方法合格标准检测结果失败原因成功失败控制节点检验安装结果查看“/etc/yum.repos.d/”目录下文件除了自建的repo文件外没有其他repo文件用“openstack--version”检测OpenStack版本号显示版本号为:openstack4.0.1计算节点检验安装结果查看“/etc/yum.repos.d/”目录下文件除了自建的repo文件外没有其他repo文件用“openstack--version”检测OpenStack版本号显示版本号为:openstack4.0.1云计算基础平台搭建与应用课程教案授课题目:第6讲基础环境配置——数据库安装与配置教学时数:0.5授课类型:R理论课R实践课教学目的、要求:能够安装与配置MariaDB数据库教学重点:安装和配置数据库服务教学方法和手段:通过微课讲解跟着视频实作教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:检查自己前面的两台虚拟主机和网络是否配置成功,保证前面完成的情况下进入这一节。教学引入:MariaDB是一个完全兼容MySql、开源、免费的数据库。在OpenStack中它用于存储用户、角色、网络、存储等信息。教学内容与教学设计:MariaDB的安装与配置只需在控制节点下进行操作。安装MariaDB数据库[root@controller~]#yuminstallmariadb-serverpython2-PyMySQL-y以上语句安装了两个软件,“maradb-server”是数据库的服务器端、“python2-PyMySQL”是它的客户端,提供了管理数据库的工具。创建数据库配置文件[root@controller~]#vi/etc/f.d/f编辑如下内容:[mysqld]bind-address=0default-storage-engine=innodbinnodb_file_per_table=onmax_connections=4096collation-server=utf8_general_cicharacter-set-server=utf8其中“bind-address”绑定的IP地址为控制节点的内网IP地址。启动数据库[root@controller~]#systemctlenablemariadb#设置开机启动[root@controller~]#systemctlstartmariadb#立即启动服务初始化数据库[root@controller~]#mysql_secure_installationEntercurrentpasswordforroot(enterfornone):#输入当前密码,直接按Enter键Setrootpassword?[Y/n]Y#是否设置新密码Newpassword:000000#输入新密码Re-enternewpassword:000000#确认新密码Removeanonymoususers?[Y/n]Y#是否去掉匿名用户Disallowrootloginremotely?[Y/n]Y#是否禁止root用户远程登录Removetestdatabaseandaccesstoit?[Y/n]Y#是否去掉测试数据库Reloadprivilegetablesnow?[Y/n]Y#是否重新加载权限表成功设置完成后将看到下面的文字:本节完成后请填写“项目评测”中的“MariaDB安装自检工单”,确保该工作已经正确完成。作业和思考题:让学生根据自己做的情况填写报告自检表6.1MariaDB安装自检工单检验内容检验方法合格标准检测结果失败原因成功失败控制节点上MariaDB是否安装成功重启服务器后,用“netstat-tnlup”查看端口占用情况3306端口为LISTEN状态用“mysql-uroot-p000000”登录数据库能够登录数据库在登录的情况下查询数据库列表“showdatabases;”存在名为“mysql”的数据库云计算基础平台搭建与应用课程教案授课题目:第7讲基础环境配置——安装时间同步服务教学时数:0.5授课类型:R理论课R实践课教学目的、要求:能够安装与配置Chrony数据库教学重点:安装和配置Chrony服务教学方法和手段:通过微课讲解跟着视频实作教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:检查自己前面的两台虚拟主机和网络是否配置成功,保证前面完成的情况下进入这一节。教学引入:因为云计算平台是个计算机集群,必然包含多台服务器(本书实验用到两台),因此我们需要将所有的服务器进行时间同步,也就是保持所有服务器处于相同的时间。时间同步软件有很多,这里我们用Chrony软件进行时间同步,让计算节点保持与控制节点的时间一致。教学内容与教学设计:Chrony是一个开源的自由软件,在CentOS7操作系统中是默认服务,它的配置文件是“/etc/chrony.conf”。Chrony包括两个核心组件:chronyd:后台一直运行的守护进程,用于调整内核中运行的系统时钟与NTP(NetworkTimeProtocol)网络时间服务器同步。chronyc:命令行的用户管理组件,用于监控性能并进行多样化的配置。配置控制节点为NTP时间服务器配置同步服务器由于chrony在CentOS7中已经默认安装好,我们只需要配置服务器即可。[root@controller~]#vi/etc/chrony.conf删除默认的外网同步服务器:server0.iburstserver1.iburstserver2.iburstserver3.iburst增加serveriburst#与阿里云保持时间同步,在有互联网的情况下有效allow/24#允许同网段的主机使用本机的NTP服务重启时间同步服务[root@controller~]#systemctlrestartchronyd#重启服务[root@controller~]#systemctlenablechronyd#设置开机启动计算节点与控制节点同步配置同步服务器[root@compute~]#vi/etc/chrony.conf删除默认的外网同步服务器:server0.iburstserver1.iburstserver2.iburstserver3.iburst增加servercontrolleriburst#与控制节点保持时间同步启动时间同步服务[root@compute~]#systemctlrestartchronyd#重启服务[root@compute~]#systemctlenablechronyd#设置开机启动检查服务状态[root@compute~]#chronycsources#查看同步服务器可以看到时间同步服务器为“controller”,在结果的左下方显示“^*”表示连接成功,如果显示为“?”则表示连接时间同步服务器不成功。如果有不成功的情况,请检查配置是否写错,并是否重启了服务器,请记住所有配置文件的修改都需要重启服务器生效。本节完成后请填写“项目评测”中的“Chrony安装自检工单”,确保该工作已经正确完成。作业和思考题:让学生根据自己做的情况填写报告自检表7.1Chrony安装自检工单检验内容检验方法合格标准检测结果失败原因成功失败计算节点上检查与控制节点的时间同步情况用“chronycsources”查询计算节点连接的时间同步(NTP)服务器NTP服务器源为控制节点,并显示成功连接用date命令查询当前时间控制节点与计算节点的时间一致云计算基础平台搭建与应用课程教案授课题目:第8讲基础环境配置——安装消息队列服务教学时数:0.5授课类型:R理论课R实践课教学目的、要求:能够安装与配置RabbitMQ消息队列服务教学重点:安装和配置RabbitMQ消息队列服务教学方法和手段:通过微课讲解跟着视频实作教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:检查自己前面的两台虚拟主机和网络是否配置成功,保证前面完成的情况下进入这一节。教学引入:OpenStack是由很多组件构成,它们是如何通信的。想象一下邮局和邮箱是如何让人们通信的。教学内容与教学设计:OpenStack各个组件之间是通过消息队列进行相互通信的。而RabbitMQ是一个开源的、应用广泛的消息服务系统,我们设置通过它来为OpenStack提供消息队列服务。该服务只需要在控制节点下进行安装。安装消息队列服务软件(RabbitMQ)[root@controller~]#yuminstallrabbitmq-server-y启动消息队列服务[root@controller~]#systemctlenablerabbitmq-server#设置开机启动[root@controller~]#systemctlstartrabbitmq-server#立即启动添加用户给RabbitMQ系统设置一个用户和密码,以后通过该用户和密码就可以使用消息队列服务。[root@controller~]#rabbitmqctladd_useropenstackRABBIT_PASS这里的“openstack”就是用户名,“RABBIT_PASS”是该用户密码。实际工作中可以按照需要进行更改。【提示】请记住你设置的用户名和密码,以后的实验还将使用。设置用户权限[root@controller~]#rabbitmqctlset_permissionsopenstack".*"".*"".*"以上命令是给“openstack”这个用户设置使用队列的权限。三个“.*”分别对应:配置、写入、读取权限,其中“.*”表示所有资源。因此,用户“openstack”已经具有了对RabbitMQ所有资源的配置、写入与读取权限。查看用户权限[root@controller~]#rabbitmqctllist_user_permissionsopenstack【结果分析】每一个RabbitMQ服务器都有一个默认的虚拟主机“/”,“openstack”用户对该主机所有资源拥有配置、写入、读取的权限。检查服务运行情况每一个服务都是通过特定的一个或者数个端口对外提供服务的,我们只要查看对应端口占用状态,就可以分析出当前服务是否正常运行。RabbitMQ服务对外服务端口为25672和5672。[root@controller~]#netstat-tnlup#查看端口监听状态如果能看到25672和5672端口正在监听中,说明安装成功。本节完成后请填写“项目评测”中的“RabbitMQ安装自检工单”,确保该工作已经正确完成。作业和思考题:让学生根据自己做的情况填写报告自检表8.1RabbitMQ安装自检工单检验内容检验方法合格标准检测结果失败原因成功失败控制节点上RabbitMQ是否启用重启服务器后,用“netstat-tnlup”查看端口占用情况25672与5672端口处于监听状态RabbitMQ的用户是否正确用“rabbitmqctllist_users”查看用户列表存在自建的名为“openstack”的用户权限是否正确查看“openstack”用户的权限具有对所有资源配置、写入、读取的权限云计算基础平台搭建与应用课程教案授课题目:第9讲基础环境配置——安装内存缓存服务教学时数:0.5授课类型:R理论课R实践课教学目的、要求:能够安装与配置Memcache内存缓存服务教学重点:安装和配置Mencache消息队列服务教学方法和手段:通过微课讲解跟着视频实作教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:检查自己前面的两台虚拟主机和网络是否配置成功,保证前面完成的情况下进入这一节。教学引入:OpenStack是由很多组件构成,它们是如何通信的。想象一下人们如何通过邮局和邮箱通信的。教学内容与教学设计:Memcache是一个高性能的分布式的内存对象缓存系统,能够存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。经常用到的数据先存放到Memcache中,使用时直接从内存中读取,由于内存比硬盘的读取速度快很多,所以可以大大提高读取速度。内存缓存对云这种多人使用的系统十分重要,能大大提高效率和降低硬盘的损耗。该安装任务只需要在控制节点执行以下操作。安装缓存服务软件(Memcache)[root@controller~]#yuminstallmemcachedpython-memcached-y安装了memcached和python-memcached两个软件,memcached是缓存服务,python-memcached是对该服务进行管理的客户端。配置缓存服务[root@controller~]#vi/etc/sysconfig/memcached将OPTIONS的值更改为:"-l,::1,controller"如下所示:设置对控制节点的内网IP进行监听。启动缓存服务[root@controller~]#systemctlenablememcached#开机启动[root@controller~]#systemctlstartmemcached#立即启动检查服务运行情况通过端口检测运行状态由于Memcache服务器要通过11211端口对外服务,所以通过查看11211端口是否启用可以判断该服务是否启动。[root@controller~]#netstat-tnlup我们看到0服务器的11211端口处于LISTEN状态时,说明服务安装成功。通过telnet连接服务器检查[root@controller~]#yum-yinstalltelnet#安装telnet软件[root@controlleropt]#telnetcontroller11211#通过端口连接服务然后键入“stats”查看服务器运行状态,输入quit退出。从显示出来的一长串结果中,可以看到当前Memcache服务运行的各种状态信息。例如其中“uptime”是服务器已经运行的秒数,“version”是版本号,“curr_connections”为当前的连接数等。本节完成后请填写“项目评测”中的“Memcache安装自检工单”,确保该工作已经正确完成作业和思考题:让学生根据自己做的情况填写报告自检表9.1Memcache安装自检工单检验内容检验方法合格标准检测结果失败原因成功失败控制节点上Memcache是否启用重启服务器后,用“netstat-tnlup”查看端口占用情况11211端口处于监听状态控制节点用telnet能否连接用telnet连入服务器,键入“stats”能连接,并且在“stats”状态下能看到服务器已经运行的时间“uptime”计算节点用telnet能否连接用telnet连入服务器,键入“stats”能连接,并且在“stats”状态下能看到服务器已经运行的时间“uptime”云计算基础平台搭建与应用课程教案授课题目:第10讲基础环境配置——安装分布式键值对存储系统教学时数:0.5授课类型:R理论课R实践课教学目的、要求:能够安装与配置ETCD键值对存储服务教学重点:安装和配置ETCD键值对存储服务教学方法和手段:通过微课讲解跟着视频实作教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:检查自己前面的两台虚拟主机和网络是否配置成功,保证前面完成的情况下进入这一节。教学引入:OpenStack是由很多用户使用的,它需要一个强大的秘钥管理系统,保证秘钥的存储安全,在OpenStack中采用的是ETCD系统。教学内容与教学设计:ETCD是一个开源项目,是一个可靠的分布式键值(KEY-VALUE)存储,用于分布式密钥管理。该任务只需要在控制节点进行安装与配置。安装ETCD软件[root@controller~]#yuminstalletcd-y配置服务器[root@controller~]#vi/etc/etcd/etcd.conf修改并启用如下数据ETCD_LISTEN_PEER_URLS="0:2380"ETCD_LISTEN_CLIENT_URLS="0:2379,:2379"ETCD_NAME="controller"ETCD_INITIAL_ADVERTISE_PEER_URLS="0:2380"ETCD_ADVERTISE_CLIENT_URLS="0:2379"ETCD_INITIAL_CLUSTER="controller=0:2380"ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"ETCD_INITIAL_CLUSTER_STATE="new"长文件的编辑我们可以用vi软件的查找功能“/”和“?”。另外,“#”表示注释,如果要启用配置需要将行首的#删除。【提示】这里不能用主机名“controller”代替内网地址0。启动服务器[root@controller~]#systemctlenableetcd#开机启动[root@controller~]#systemctlstartetcd#立即启动检查服务运行情况通过端口检测运行状态ETCD服务正如在配置文件中配置的,需要监听2379和2380端口,故而我们可以通过检查这两个端口的情况,判断服务运行状况。[root@controller~]#netstat-tnlup通过etcdctl命令检测etcdctl是管理ETCD服务的工具,我们可以利用它来判断服务是否运行正常。存入数据:[root@controller~]#etcdctlsettestkey001向键(KEY)名为“testkey”存入值(VALUE)为“001”。读取数据:[root@controller~]#etcdctlgettestkey001读取键“testkey”所对应的值。本节完成后请填写“项目评测”中的“ETCD安装自检工单”,确保该工作已经正确完成。作业和思考题:让学生根据自己做的情况填写报告自检表10.1ETCD安装自检工单检验内容检验方法合格标准检测结果失败原因成功失败控制节点上ETCD服务是否启用重启服务器后,用“netstat-tnlup”查看端口占用情况2379与2380端口处于监听状态能否正常存取数据用etcdctl命令向“mykey”键存入值“007”;用etcdctl命令读取“mykey”键的值。能存入,也能正确读到值。云计算基础平台搭建与应用课程教案授课题目:第11讲OpenStack的认证中心——Keystone教学时数:3授课类型:R理论课R实践课教学目的、要求:了解OpenStack的基本名词了解Keystone的功能了解Keystone的组件构成及功能了解Keystone的基本工作过程能够安装配置Keystone认证组件教学重点:了解OpenStack的基本名词Keystone的组件构成及基本工作过程安装配置keystone服务教学方法和手段:通过微课讲解跟着视频实作教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:检查自己前面的系统配置是否完全完成,必须完成后才能进入这一段学习。教学引入:OpenStack云计算平台是由OpenStack的多个功能组件组成。犹如搭积木一样,各个功能组件构成了云计算平台,那应该先搭建哪一个组件呢?由于OpenStack的所有组件都要通过“Keystone”组件的认证才能够进入云管理平台,因此首先安装身份认证组件:“Keystone”。教学内容与教学设计:11.1Keystone的基本概念11.1.1基本名词解释从本章开始我们将要接触很多OpenStack的专业名词,如域、项目、服务、端点、用户、角色、凭据、鉴权、令牌、组等,感觉好复杂的样子呢。下面我们通过一个浅显的例子来理解它们。假设我投资了一个网吧,这个网吧就是项目(Project)。该网吧对外提供多种服务(Service),比如上网、泡方便面、叫外卖等。为了知道客户想要什么服务,每个服务都有一个不同的服务地址,只要你来到这个地址就能使用对应的服务,如到前台可以泡方便面,这里的地址就是服务端点(Endpoint)。在这个项目里,我、网管和来上网的人都是用户(User),我们都可以使用该网吧的服务。但我们在网吧里的权限又不一样,因为我们的角色(Role)不一样。我的角色是老板,我有查账的权限;网管的角色是管理员,负责收银和软硬件管理;其他人的角色是顾客,只能上网与消费。用户来到服务端点后并不是马上就可以使用服务,得把身份凭据(Credentials)提供出来由系统进行鉴权(Authentication)以判断是否可以使用该服务(比如年龄不到不允许使用上网服务)。当通过鉴权后会给发给你一个令牌(Token),每次你要使用项目中某项服务的时候只需要出示令牌即可。比如你还需要买方便面时只需要出示令牌由管理员进行记账即可,不需要再次鉴权。另外,为了便于管理还可以将若干个用户分为若干组(Group),如VIP组收费打八折,一般会员组收费打九折,这实际是进行批量权限设定,你进了这个组就有了这个组的所有权限。随着业务扩大,又开设了很多连锁加盟店(不同的项目),显然每个加盟店有自己的用户,不能拿着一个网吧的会员卡到另一个网吧消费。此时我们可以把部分项目(Project)和用户(User)划到一个域(Domain)中,并规定只有本域中的用户才能使用本域中项目的资源。其中域(Domain)、项目(Project)、组(Group)、用户(User)、角色(Role)的关系图如图11.1所示。图11.1域、项目、组、用户和角色关系模型图项目(Project)Project是可供用户访问的资源集合,不同的项目(Project)之间资源是隔离的。用户(User)User指代任何拥有身份验证信息来使用OpenStack的实体,它属于特定的域(Domain),可以是真正的使用人、其他系统或者服务。OpenStack中自带了“admin”用户,该用户从属于“admin”项目并且分配有“admin”角色。用户必须要指定一个项目(Project)才可以申请使用OpenStack的服务。域(Domain)Domain是项目(Project)和用户(User)的集合。默认存在“default”域,如果没有创建域,所有项目和用户都使用“default”域。角色(Role)Role是预定义的权限集合。OpenStack自带两个预定义角色,即“admin”和“member”。“member”角色提供普通用户访问权限。“admin”角色提供整个OpenStack环境的管理特权。如果项目中的用户被分配了“admin”角色,则该用户获得与“admin”用户相同的特权。“admin”用户不仅是所属项目的管理员,还能够管理OpenStack环境中的所有项目。组(Group)Group是域中的部分用户的集合。通过分配角色到组,可以批量向在该组中的所有用户分配权限。凭据(Credentials)是Keystone验证用户身份时需要的身份验证数据。这些数据包含用户名、密码、项目名、域名等信息。鉴权(Authentication)鉴权(Authentication)是Keystone通过检查用户的凭据(Credentials)来确定用户的身份的过程。当用户的凭据(Credentials)通过验证后,Keystone给用户提供身份验证令牌(Token),让用户能够访问该服务。令牌(Token)令牌(Token)是一个加密字符串,作为访问资源的“通行证”。一个Token包含了在指定范围和有效时间内可以被访问的资源信息。服务(Service)即Openstack中提供的组件服务,如计算服务、镜像服务等。端点(Endpoint)一个可以通过网络来访问和定位某个服务(Service)的地址,通常是一个URL地址。如“http://controller:5000/v3”就是Keystone组件对外提供服务的端点。Endpoint分为三类:admin-url:给管理员提供服务的地址internal-url:给OpenStack内部组件提供服务的地址public-url:给其他用户提供服务的地址在OpenStackTrain版中这三类端点是一样的,只是保留了不同的定义而已。11.1.2Keystone基本架构图11.2Keystone服务后端支持模块如图11.2所示,Keystone的服务(Service)是由Token、Catalog、Identity、Policy四大后端模块所支持的。Tokenbackend 顾名思义该模块用来生成和管理Token令牌。Catalogbackend 用来存储和管理服务(Service)、服务端点(Endpoint)。Identitybackend 用来管理项目(Project)、用户(User)、角色(Role)和提供验证服务。Policybackend 用来管理所有访问的权限。11.1.3Keystone认证的基本步骤图11.3虚拟机生成步骤示意图从图11.3可以看出,对OpenStack中任何服务的访问都要经过Keystone的鉴权。Keystone的鉴权分为两种:判断用户凭证是否合法用户初次使用服务时需要提交给Keystone用户名、密码等用户凭证信息。Keystone进行鉴权判断是否为合法用户,如果是则颁发令牌(Token)。在颁发的令牌中包含有用户对服务的使用权限、令牌的失效时间等信息。拿着令牌就可以在系统内通行了。判断用户令牌是否合法当用户(User)使用OpenStack的任一组件服务时都需要提交已获得的令牌。提供服务的组件将收到的令牌提交给KeyStone判断该令牌是否合法,是否过期,是否有权获得服务等。只有通过了KeyStone的验证后服务才会响应相应的请求。11.2安装与配置Keystone认证服务为了避免接下来的工作中由于操作不当造成系统重装的风险,我们将前期工作进行拍摄快照保存。由于本章工作只在控制节点上实施,因此只需要给控制节点拍摄快照。详细操作请参阅任务6.4。11.2.1安装和配置Keystone安装Keystone软件包[root@controller~]#yuminstallopenstack-keystonehttpdmod_wsgi-y这里安装了三个软件:“openstack-keystone”,“httpd”,“mod_wsgi”。openstack-keystone是Keystone的软件包;Keystone组件实际是一款基于服务器网关接口(WSGI)协议的Web应用,它需要在支持WSGI协议的Web服务器上运行;Httpd是一个Web服务器,当它安装上mod_wsgi扩展模块就能支持WSGI协议,以满足Keystone的运行需要。在安装openstack-keystone包的时候,同时也会在系统自动创建名为“keystone”的用户以及同名用户组。我们可以用如下两种方式查看系统自动生成的“keystone”用户和“keystone”用户组的相关信息。查看keystone用户信息[root@controller~]#cat/etc/passwd|grepkeystone能看见已经存在“keystone”用户。查看keystone用户组信息[root@controller~]#cat/etc/group|grepkeystone能看见已经存在“keystone”用户组。创建keystone数据库并授权进入数据库[root@controller~]#mysql-uroot-p000000因为MariaDB数据库完全兼容MySql数据库,因此在使用方式上是与MySql数据库是一样的。该命令的参数-u后为用户名,-p后为密码,不需要空格。建立keystone数据库MariaDB[(none)]>CREATEDATABASEkeystone;#创建一个名为keystone的数据库【提示】SQL命令需要“;”作为结束符,不要忘记。为数据库授权MariaDB[(none)]>GRANTALLPRIVILEGESONkeystone.*TO'keystone'@'localhost'IDENTIFIEDBY'KEYSTONE_DBPASS';MariaDB[(none)]>GRANTALLPRIVILEGESONkeystone.*TO'keystone'@'%'IDENTIFIEDBY'KEYSTONE_DBPASS';上面两条语句把“keystone”数据库所有表(keystone.*)的所有权限(ALLPRIVILEGES)赋予本地主机('localhost')及任意远程主机('%')中名为keystone的用户,验证密码为“KEYSTONE_DBPASS”。【提示】OpenStack的密码都可以根据实际需要进行设置,但一定要记住它们!退出数据库MariaDB[(none)]>exit;修改Keystone配置文件[root@controller~]#vi/etc/keystone/keystone.conf这是一个很长的配置文件,我们首先配置Keystone组件使用的数据库。利用vi的搜索功能,搜索到[database]区域,增加或者修改connection=mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone该行配置数据库连接信息:用户“keystone”和密码“KEYSTONE_DBPASS”(keystone:KEYSTONE)去连接controller主机中的名字叫“keystone”的数据库(@controller/keystone)。【提示】这里设置的用户名和密码要和数据库里对keystone数据库授权时设置的用户名和密码一致。然后在[token]区域下取消注释让下面设置生效。provider=fernetKeystone令牌有三种生成方式:UUID、PKI、Fernet。其中“Fernettoken”是当前主流推荐的token加密格式。它是一种轻量级的消息格式,不需要存储于数据库,减少了磁盘的IO,带来了一定的性能提升。一个“Fernettoken”的样子长得像这样的:gAAAAABeuBugyxPug1qqhcvgl-4rHhlrd6VT71g0LdjbtnpvnKANkSqzndDcwHky-o0c06nU7jfaZhEpgnEnw8Csrw7nxrBeIMY3xBtLwLY0DJBQhHyd55b890lOt9UzXiv--YZNk7jPYP3RzfUg8HmBUSI2SUmHd2eYcrowUq32c7hv7gODLoA在这个字符串中存储了用加密密钥加密后的用户信息、权限信息、过期时间信息等。Keystone在验证的时候将用解密密钥进行解密获得原始信息。同步数据库Keystone安装后已经提供了数据库的基础表数据,但还没有导入到数据库中,我们需要手动将数据同步导入到数据库中。[root@controller~]#sukeystone-s/bin/sh-c"keystone-managedb_sync"【命令解释】sukeystone:切换到keystone用户,因为只有keystone用户(安装时自动创建的用户)拥有对keystone数据库完全操作的权限所以要切换到keystone用户来执行同步,执行完后将把用户切换回root用户;-s/bin/sh:-s为su命令的参数,指定用什么编译器(Shell)来执行命令,“/bin/sh”就是指定的编译器;-c:为su的参数,后面在引号内的是具体执行的命令;keystone-manage:是用来同Keystone服务进行交互的命令行工具。keystone-manage的命令格式:keystone-manage[参数]具体操作(action)keystone-manage常见操作:db_sync:同步数据库;fernet_setup:创建一个“Fernetkey”仓库,用于令牌(token)加密;credential_setup:创建一个“Fernetkey”仓库,用于凭证(credential)加密;bootstrap:认证引导服务,初始化Keystone的登录信息;token_flush:清除过期的token。检查同步后的数据库[root@controller~]#mysql-uroot-p0000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论