版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程OpenStack云计算平台
搭建与管理人民邮电出版社编著:姚骏屏何桂兰项目5云计算平台基础环境准备第6讲openEuler操作系统的软件管理学习目标【知识目标】(1)理解YUM软件包管理器的基本概念。(2)综合应用YUM软件包管理器的基本指令。【技能目标】(1)能够从网络上同步软件仓库生成YUM源(2)能够应用yum命令管理软件仓库。引例描述
小王掌握了Vi文本编辑器和MobaXterm远程管理工具的使用方法以后,他感觉对openEuler操作系统的应用更加得心应手。他认为现在基础知识和必备操作技能已经学习完毕,是时候开展OpenStack云计算平台的搭建工作了。此时,小王又遇到了一些问题,如安装OpenStack前还要做哪些工作,怎样获取OpenStack安装软件,怎么把现有的一台虚拟机变成安装OpenStack所需要的两台虚拟机,两台虚拟机之间的网络该怎么设置等。项目陈述
虚拟机安装好操作系统以后就需要安装应用软件。在手机的操作系统中,在应用商城可以下载并安装软件。相似的,在openEuler操作系统中也有类似的功能,这就是软件仓库。由于OpenStack需要的软件包体积非常大,直接通过互联网安装比较慢,因此本项目将所需的软件资源先下载下来生成本地软件仓库。YUM软件包管理器OpenEuler的软件仓库可以使用YUM软件进行管理,YUM是黄狗更新程序(YellowdogUpdaterModified)的缩写,它是一个在Fedora和RedHat以及CentOS中使用的软件包管理器。YUM能够从指定的服务器中自动下载软件包并且安装,同时可以自动处理依赖关系,从而实现一次性安装全部该软件所依赖的软件包。YUM软件包管理器常用操作功能说明install安装软件包update更新软件包check-update检查是否有可用的更新软件包remove删除指定的软件包list显示软件包列表provides查看软件由哪个软件包提供search根据关键字搜索软件包info显示指定的软件包的描述信息和概要信息clean清理过期的缓存deplist显示软件包的所有依赖关系常用选项功能说明-h显示帮助信息-y对所有的提问都回答“yes”-c指定配置文件-q安静模式,即不显示软件反馈信息-v详细模式-R处理一个命令的最大等待时间-C完全从缓存中运行,而不去下载或者更新任何文件
命令格式:yum[选项]<操作><软件包名>应用实例如果要安装一个软件,但不知道它在哪个软件包中,可以搜索一下。如搜索ifconfig软件在哪个软件包中。命令:#yumprovidesifconfig获得如下结果net-tools-2.10-3.oe2203sp3.x86_64:ImportantProgramsforNetworkingRepo:OSMatchedfrom:Filename:/usr/sbin/ifconfig应用实例
当忘记软件包完整名称时,可以根据部分名称进行软件包查询。如:查询软件仓库中以“net-”开头所有软件包信息。命令:yumlistnet-*获得如下结果AvailablePackagesnet-snmp.src
1:5.9.1-6.oe2203sp3sourcenet-snmp.x86_641:5.9.1-6.oe2203sp3OSnet-snmp.x86_641:5.9.1-6.oe2203sp3everything这里用通配符“*”实现了通过部分名称查询相关软件包的操作。应用实例
查询出软件包名后,就可以安装net-tools软件包。命令:yum-yinstallnet-tools获得如下结果Installed:net-tools-2.10-3.oe2203sp3.x86_64Complete!
整个安装过程大致分为3步,首先是依赖性检查,即找出本软件包运行所依赖的所有软件包;然后将软件包及其所有依赖包从软件仓库中下载下来;最后安装软件包及所有依赖包。YUM源
提供软件包下载的服务器就是YUM源。YUM软件可以管理多个软件源。YUM源的配置文件默认为/etc/yum.repos.d/目录下所有后缀为“repo”的文件。通过ls命令可查看openEuler操作系统安装好后就已经存在的YUM源配置文件,查询结果如下所示。ls/etc/yum.repos.d/openEuler.repoYUM源用vi打开openEuler.repo文件可以看到如下内容。[OS]name=OSbaseurl=/openEuler-22.03-LTS-SP3/OS/$basearch/metalink=/metalink?repo=$releasever/OS&arch=$basearchmetadata_expire=1henabled=1gpgcheck=1gpgkey=/openEuler-22.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler这些内容就是一个软件仓库的配置,也称为一个YUM源容器,其中[OS]就是容器名。添加若干容器名,就可以在一个文件中配置若干个YUM源容器。YUM源——配置项及功能说明配置项功能说明name源容器的说明baseurl源服务器的地址metalink镜像站点metadata_expire定义YUM缓存中数据的过期时间enabled如果不写此参数或值为1时表示此容器生效;值为0则不生效gpgcheck如果值为1,则表示需要验证软件包的数字证书信息;值为0则不验证gpgkey数字证书的公钥文件保存位置,如gpgcheck值为0时此参数无效小结OpenEuler和Linux安装软件可以通过软件仓库进行安装,这些软件仓库有官方的也有第三方提供的,为操作系统提供了上万的软件应用。软件仓库可以由YUM进行管理,我们可以通过yum命令实现软件的安装、卸载等操作。思考1.yum命令中用()参数来安装软件包。2.yum命令中用()参数来卸载软件包。3.yum命令中用()参数来升级软件包。4.yum命令中用()参数来搜索软件包。5.repo配置文件中“baseurl”是配置什么?6.repo配置文件中“enabled”是配置什么?谢谢观看课程OpenStack云计算平台
搭建与管理人民邮电出版社编著:姚骏屏何桂兰项目5云计算平台基础环境准备第7讲克隆并配置虚拟机学习目标【知识目标】(1)综合应用OpenEuler的网络服务。(2)理解OpenEuler主机名与本地域名解析。【技能目标】(1)能够配置与启动网络服务。(2)能够设置主机名与本地域名解析。引例描述“云”是一个由很多台服务器构成的计算机集群,目前已经有了一台安装好操作系统的虚拟机了,如何再生成新的虚拟机呢?是不是要重新创建虚拟机并重新安装操作系统呢?项目陈述
本课程将搭建OpenStack双节点平台,需要两台带双网卡的计算机主机,分别作为控制节点(controller)和计算节点(compute)。需要按照右表的配置准备虚拟机。
虚拟机控制节点计算节点主机名controllercomputeCPU2核2核硬盘100GB100GB内存4GB4GB网卡10/24,仅主机模式网络,用于内网通信0/24,仅主机模式网络,用于内网通信网卡20/24,NAT模式网络,用于外网通信0/24,NAT模式网络,用于外网通信克隆虚拟机
现在已经有了一台满足条件的虚拟机可以用作控制节点,还差一台计算节点。可以将现有的一台虚拟机整体克隆生成完全一样的主机。第1步,在VMwareWorkstation主界面鼠标右键单击【我的计算机】下的虚拟机(虚拟机需处于关闭状态),在弹出的菜单中依次选择【管理】→【克隆】后出现【克隆虚拟机向导】。克隆虚拟机
第2步,选择克隆源与克隆类型。在【克隆虚拟机向导】对话框中单击【下一页】按钮进入【克隆源】界面。在【克隆源】界面中选择【虚拟机中的当前状态】单选按钮,然后单击【下一步】按钮,弹出克隆类型】界面。在【克隆类型】界面中选择【创建完整克隆】单选按钮,然后单击【下一步】按钮,弹出【新虚拟机名称】界面。克隆虚拟机
第3步,设置新的虚拟机名称及存储位置,然后开始克隆虚拟机。在【新虚拟机名称】界面中的【虚拟机名称】和【位置】文本框内填写和选择新克隆的虚拟机的名称和虚拟机存储的位置,设置完成后单击【完成】按钮,显示【正在克隆虚拟机】对话框。克隆成功后将弹出克隆完成的界面。【关闭】后可以在主界面看到【我的计算机】下多出了一个虚拟机——计算节点。设置主机网络由于计算节点克隆于控制节点,因此其内部软硬件配置和控制节点的保持一致,包括网卡配置。由于在同一个网络中不允许出现两个相同的IP地址,因此我们要更改计算节点的网卡IP地址。第1步,更改计算节点内网网卡IP地址。[root@localhost~]#cd/etc/sysconfig/network-scripts/[root@localhostnetwork-scripts]#viifcfg-ens33
在文件中删除UUID,并按以下代码更改IP地址。IPADDR=0保存并退出编辑。设置主机网络第2步,更改计算节点外网网卡IP地址。[root@localhostnetwork-scripts]#viifcfg-ens34在文件中删除UUID,并按以下代码更改IP地址。IPADDR=0第3步,重启并查看网络。nmcliconreloadnmcliconupens34
nmcliconupens33重启以后,因为IP地址已经更改,SSH远程连接工具将会丢失连接,所以要重新用新的IP地址“0”进行连接。主机名管理登录以后,可以发现每台主机的命令行前面都是“[root@localhost~]”,这里的“localhost”就是默认的主机名。如果不更改主机名,相同的主机名将导致这些主机之间无法区分彼此。因此,需要给每台主机配置一个唯一的名字(主机名),方便以后直接通过主机名对相应的计算机进行管理。(1)查看主机名用hostname命令可以查看当前计算机的主机名。[root@localhost~]#hostnamelocalhost可以看到主机名为“localhost”,这是操作系统默认主机名。主机名管理(2)更改主机名方法一:更改“/etc/hostname”文件,用新的主机名替换原有的主机名。[root@localhost~]#vi/etc/hostname更改完成后需要重新启动系统,使更改生效。方法二:利用hostnamectl命令更改主机名。hostnamectl命令顾名思义是对主机名进行管理。命令格式:hostnamectlset-hostname<主机名>这条命令将更改“/etc/hostname”文件内容,以达到更改主机名的目的。采用方法二更改主机名不需要重启系统,只需退出当前登录或者用远程管理工具重新连接一次即可本地域名解析如果想通过主机名直接访问对应的主机,就需要将主机名和网卡的IP地址进行绑定,这个绑定工作可以借助本地域名解析来完成。Linux中的“/ext/hosts”文件的作用就是将一些常用的域名与其对应的IP地址建立关联,当访问这些域名时就可以将其解析为对应的IP地址进行访问。利用这个方法将主机名和IP地址进行绑定后,访问主机名就等同于访问对应的IP地址,这样可以提高工作效率。#vi/etc/hostslocalhostlocalhost.localdomainlocalhost4lcalhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6文件中的每一行都表示一个域名到IP地址的映射关系,其中“”是IPv4的本地IP地址,而“::1”是IPv6的本地IP地址。IP地址后面的字符串是主机名列表。主机名列表中第一个为主机名,如这里的“localhost”,其他为主机名的别名。主机名的别名可以有多个,它们之间用空格隔开。防火墙管理防火墙是一种位于内部网络与外部网络之间的网络安全系统,可以将内部网络和外部网络隔离。通常,防火墙可以保护内部的私有局域网免受外部攻击,并防止重要数据泄露。在OpenEuler中自带防火墙应用,默认使用Firewall作为系统防火墙。对防火墙的管理功能集成在系统服务管理命令systemctl中。命令格式:systemctl<参数><服务名>参数功能说明status查看服务运行状态start开启服务stop停止服务enable使服务开机即启动disable取消服务开机启动restart重启服务防火墙管理【案例1】查看防火墙状态#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;enabled;vendorpreset:enabled)Active:active(running)sinceSun2021-08-1512:49:59EDT;38sago
运行结果中的“Loaded”这一行的“enabled”说明已经开启了开机启用服务,没有启动时该参数项是“disabled”。在“Active”这一行的“active(running)”说明服务已经启动,且处于运行状态,没有启动时该参数项是“inactive(dead)”。防火墙管理【案例1】查看防火墙状态#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;enabled;vendorpreset:enabled)Active:active(running)sinceSun2021-08-1512:49:59EDT;38sago
运行结果中的“Loaded”这一行的“enabled”说明已经开启了开机启用服务,没有启动时该参数项是“disabled”。在“Active”这一行的“active(running)”说明服务已经启动,且处于运行状态,没有启动时该参数项是“inactive(dead)”。防火墙管理【案例2】:停止防火墙#systemctlstopfirewalld
通常停止防火墙时,还要设置禁止防火墙开机自动启动,否则一旦重启系统,防火墙仍然会运行。禁止开机启动的命令如下。#systemctldisablefirewalld防火墙管理【案例3】:启动防火墙启动防火墙的命令如下所示。#systemctlstartfirewalld防火墙开启之后,设置防火墙开机自动启动服务,否则重启系统后防火墙会失效,设置开机启动的命令如下。#systemctlenablefirewalldSELinux管理安全增强型Linux(SecurityEnhancedLinux,SELinux)是一套基于Linux内核的安全子系统。SELinux有3种工作模式,包括强制模式(enforcing)、宽容模式(permissive)、禁用模式(disabled),其中“enforcing”模式是默认模式,强制使用SELinux安全策略;“permissive”模式不使用安全策略,只把相关信息写入日志,通常在调试时使用;“disabled”模式禁用SELinux。SELinux管理可以通过SELinux的配置文件“/etc/selinux/config”中的“SELINUX”参数来设置它的工作模式,如下代码就禁用了SELinux。SELINUX=disabled修改配置文件后需要重启系统才能生效。SELinux管理“enforcing”和“permissive”模式还可以通过命令快速切换,其命令如下所示。setenforce1|0setenforce1:将SELinux切换到“enforceing”模式,使SELinux启用。setenforce0:将SELinux切换到“permissive”模式,可以临时关闭SELinux。安装OpenStack云计算平台需要禁用CentOS中的SELinux安全策略。小结VMware提供了虚拟机克隆功能,可以将一台虚拟机完整的克隆成新的虚拟机。由于克隆得到的虚拟机和原主机所有配置一样,因此要给新的虚拟机重新配置网络。同时,两台虚拟机都需要设置主机名和本地域名解析和关闭防火墙和禁用SELinux安全策略。思考1.修改主机名需要修改()文件。2.修改域名映射需要修改()文件。3.OpenEuler默认的防火墙是()。4.Firewall防火墙的启动命令是(
)。5.查看Firewall防火墙状态的命令是(
)。6.如何禁用SELinux安全策略?谢谢观看课程OpenStack云计算平台
搭建与管理人民邮电出版社编著:姚骏屏何桂兰项目5云计算平台基础环境准备第8讲搭建本地仓库学习目标【知识目标】(1)理解mount与unmount命令。(2)综合应用FTP服务。(3)综合应用YUM源配置文件。【技能目标】(1)能够加载镜像文件。(2)能够设置YUM源。(3)能够搭建与应用FTP服务器。引例描述OpenEuler和Linux的软件仓库类似于手机中的应用商城,就是下载软件的地方。可以用YUM管理软件仓库,因此软件仓库也称为YUM源。
OpenEuler提供了官方的在线YUM源可以直接使用,但是通常在搭建私有云的时候不能够直接访问到外网,这该怎么办呢?在不能使用在线YUM源的时候如何安装软件呢?项目陈述
如果不能访问外网,可以将软件仓库先下载下来再搭建本地的YUM源。每台主机由于都需要安装软件,故而都需要配置YUM源,因此在控制节点和计算节点上均要完成YUM源配置操作。
本任务将在控制节点上配置YUM源,并搭建文件传输服务器为计算节点提供服务。本任务需要使用控制节点和计算节点。
上传镜像随书提供的资源包中有“openStack-train.iso”文件,将它上传到控制节点的/opt目录下。挂载镜像首先创建一个新文件夹,然后将“openStack-train.iso”文件挂载到上面。[root@controller~]#cd/opt[root@controlleropt]#mkdiropenstack[root@controlleropt]#mountopenStack-train.isoopenstack这里采用了mount命令将镜像文件挂载到“/opt/openstack”目录下,这样就可以通过访问该文件夹来访问镜像文件中的内容。开机加载镜像当系统重启后,使用mount命令的挂载将失效,需要重新挂载。为了让重启后让系统自动挂载镜像,需要修改/etc/fstab文件#vi/etc/fstab在文件最后写入如下代码:/opt/openStack-train.iso/opt/openstackiso9660defaults00这行代码表示将“/opt/openStack-train.iso”镜像文件挂载到“/opt/openstack”目录,挂载的磁盘文件系统为“iso9660”光盘文件系统,文件系统的参数为“default”(即为可读写、可执行等),后面两个“0”分别代表如果系统执行dump命令进行全盘备份时不备份它、在开机的过程中不检验该文件系统是否完整以提高效率。备份REPO文件将原有的YUM源配置文件(REPO文件)备份后从目录中移除。[root@controlleropt]#cd/etc/yum.repos.d/[root@controlleryum.repos.d]#mkdirbak[root@controlleryum.repos.d]#mv*.repobak编辑本地YUM源文件,使其指向本地文件[root@controlleryum.repos.d]#viOpenStack.repo在这个新建的REPO文件内按照下面的格式添加OS、everything、update、OpenStack_Train、EPOL这5个软件仓库的本地地址——挂载镜像的地址。[OS]name=OSbaseurl=file:///opt/openstack/OS/enabled=1gpgcheck=0这里的name就是软件仓库名、baseurl是仓库地址、enabled设置1为启用该软件仓库、gpgcheck设置为0为取消数字签名验证。清除原有YUM源缓存并重建缓存[root@controlleryum.repos.d]#yumcleanall
首先清除缓存。
[root@controlleryum.repos.d]#yummakecache
然后重新建立YUM源缓存。[root@controlleryum.repos.d]#yumrepolist
最后,检测YUM源是否可用。repoidreponameEPOLEPOLOS
OSOpenStack_TrainOpenStack_Traineverythingeverythingupdateupdate如果可以看到“OS”“everything”“EPOL”“update”“OpenStack_Train”这5个库,则说明配置正确。在控制节点配置FTP服务器在控制节点上搭建一个FTP服务器,利用共享控制节点上已有的软件仓库来为计算节点提供服务。第1步,安装FTP软件包。VSFTP是一款在Linux中非常常用的FTP服务器,这里选择它来作为FTP服务器。[root@controller~]#yum-yinstallvsftpd
第2步,配置FTP主目录为软件仓库目录。[root@controller~]#vi/etc/vsftpd/vsftpd.conf在配置文件中将anonymous_enable=NO更改为anonymous_enable=YES#启用匿名用户增加一行配置:anon_root=/opt
#将匿名用户访问的主目录指向软件仓库所在的实际目录。第3步,启动FTP服务。[root@controller~]#systemctlstartvsftpd
[root@controller~]#systemctlenablevsftpd
计算节点配置YUM源接下来修改计算节点的YUM源配置文件,使YUM源指向控制节点FTP服务器里的软件仓库。第1步,备份原有YUM源的配置文件。[root@compute~]#cd/etc/yum.repos.d/[root@computeyum.repos.d]#mkdirbak[root@computeyum.repos.d]#mv*.repobak第2步,从控制节点远程复制配置文件,以减少修改工作量。[root@computeyum.repos.d]#scproot@controller:/etc/yum.repos.d/OpenStack.repoOpenStack.reposcp命令是远程复制命令,这里用它将控制节点的YUM源配置文件“OpenStack.repo”复制到计算节点中。出现“Areyousureyouwanttocontinueconnecting(yes/no)?”时请输入yes同意该连接;当显示“root@controller'spassword:”时,输入控制节点root用户的密码,如本例为“openstack0#”。计算节点配置YUM源第3步,编辑YUM源配置文件,使用控制节点FTP服务器中的软件仓库。[root@computeyum.repos.d]#viOpenStack.repo按照如下所示将5个软件仓库地址均修改为控制节点上FTP服务提供的地址。[OS]name=OSbaseurl=ftp://controller/openstack/OS/enabled=1gpgcheck=0第4步,清除原有YUM源缓存并重建缓存。[root@compute~]#yumcleanall[root@compute~]#yummakecache小结OpenEuler和Linux可以通过YUM源安装应用程序,在没有连接外网的情况下可以利用下载好的软件仓库来搭建本地YUM源。可以用mount命令将镜像文件挂载到系统中,但重启计算机后该挂载将丢失,为了实现开机自动挂载可以修改/etc/fstab文件。更改YUM源的REPO配置文件即可更换软件仓库。思考1.mount用于()文件。2.REPO文件中的baseurl是什么?3.远程拷贝用()命令。4.更换软件仓库后如何清除原有YUM源缓存?5.重建YUM源缓存的命令是什么?6.如何用yum命令查看软件仓库列表?谢谢观看课程OpenStack云计算平台
搭建与管理人民邮电出版社编著:姚骏屏何桂兰项目5云计算平台基础环境准备第9讲安装时间同步服务学习目标【知识目标】(1)了解Chrony时间同步服务。(2)了解chronyc命令。(3)理解Chrony配置。【技能目标】(1)能够配置Chrony时间同步服务器。(2)能够配置Chrony时间同步客户端。(3)能够用chronyc命令对时间同步服务进行管理引例描述小王掌握了Vi文本编辑器和MobaXterm远程管理工具的使用方法以后,他感觉对Linux的操作更加得心应手。他认为现在基础知识和必备操作技能已经学习完毕,是时候展开OpenStack云计算平台的搭建工作了。此时,小王面对了一些问题,安装OpenStack前还要做哪些工作,安装哪些软件呢?项目陈述
在安装OpenStack之前必须安装并配置好时间同步服务、数据库服务、消息队列服务、缓存服务、分布式键-值对存储服务等基础服务,因为它们可提供对OpenStack的必要支持。
其中,时间同步服务能让计算机集群中所有服务器保持时间一致,这样才能使其通信正常。本任务将配置一个常用的Chrony时间同步服务。
Chrony时间同步服务
网络时间协议(NetworkTimeProtocol,NTP)是用于网络时间同步的协议。提供NTP网络对时的服务器就是NTP服务器。因为云计算平台是一个计算机集群,所以必然包含多台服务器(如本书中用到了两台)。因为同一系统内的计算机时间必须保持一致才能保证系统工作正常,所以需要将所有的服务器进行时间同步,即保持所有服务器处于相同的时间。提供NTP时间同步服务的软件有很多,这里采用Chrony软件来实现时间同步。Chrony时间同步服务
Chrony软件是一个开源的自由软件,在OpenEuler中是默认安装并开启的服务(如果系统里没有安装可以用yuminstallchronyd进行安装)。Chrony软件包括两个核心组件,chronyd和chronyc。chronyd是后台一直运行的守护进程,用于调整计算机的系统时钟与NTP服务器保持同步。
如右图所示,内网NTP服务器可以从外网NTP服务器获得时间同步服务,同时它也为内网中的时间同步客户端提供了时间同步服务。所以一个NTP服务器也可以作为另一个NTP服务器的客户端。时间同步中的核心是给其他计算机提供进行“对时”的NTP服务器。修改Chrony配置文件,可以将任意一台计算机配置成NTP服务器或者与NTP服务器连接的客户端。Chrony的配置文件是“/etc/chrony.conf”。修改配置文件:vi/etc/chrony.conf当外网的NTP服务器不可用时,可采用本地时间作为同步标准。localstratum1设置服务器允许同一个网段的Chrony客户端使用NTP服务。allow/24修改完配置文件后需要重启服务才能让其生效。systemctlrestartchronyd
Chrony时间同步服务——配置服务器第1步,打开Chrony的配置文件。[root@compute~]#vi/etc/chrony.conf第2步,编辑配置文件。首先,在配置文件中把默认的同步服务器删除。pooliburst然后,增加控制节点的时间同步服务器,即让计算节点与控制节点进行对时。servercontrolleriburst第3步,重启时间同步服务使配置生效。[root@compute~]#systemctlrestartchronyd
Chrony时间同步服务——配置客户端Chrony的时间同步由chronyc命令进行监控和管理。chronyc命令的基本用法如下所示。chronyc<参数>Chrony时间同步服务——管理服务常用参数功能说明sources[-v]显示当前NTP服务器的信息,加上选项-v将显示对数据的说明Activity检查有多少个NTP源在线/离线Clients显示访问本服务器的客户端addserver添加新的NTP服务器delete删除已有的NTP服务器Chrony时间同步服务——管理服务【案例1】查看计算节点与控制节点的同步情况。[root@compute~]#chronycsources210Numberofsources=1MSName/IPaddressStratumPollReachLastRx
Lastsample=======================================================================^*controller
36173
+1552ns[+294us]+/-1215ms从显示结果中可以看到,当前NTP服务器为controller。其中“*”表示当前已经连接上的NTP服务器,如果无法连接会显示“?”。“Lastsample”列显示上次测量时本地时钟与NTP服务器时间之间的偏移量,方括号中的内容表示实际测得的偏移量,方括号左侧的内容表示被调整的偏移量,值为正时表示客户端时间比服务器时间快,“+/-”后的内容为允许误差范围。Chrony时间同步服务——管理服务【案例2】添加和删除腾讯NTP服务器“”是腾讯公司提供的一个NTP服务器。[root@controller~]#chronycaddserver200OK显示“200OK”表示操作成功。接下来将该NTP服务器删除。[root@controller~]#chronycdelete200OK小结因为云计算平台是一个计算机集群,所以必然包含多台服务器。因为同一系统内的计算机时间必须保持一致才能保证相互通信正常,所以需要将所有的服务器进行时间同步,即保持所有服务器处于相同的时间。OpenEuler默认安装有Chrony时间同步服务,我们可以用chronyc对该服务进行管理。思考1.如何查看Chrony服务运行状态?2.Chrony配置文件中的server是什么?3.重启Chrony时间同步服务的命令是什么?4.如何查看时间同步客户端是否与服务器同步?谢谢观看课程OpenStack云计算平台
搭建与管理人民邮电出版社编著:姚骏屏何桂兰项目5云计算平台基础环境准备第10讲安装OpenStack云计算平台框架学习目标【知识目标】(1)了解OpenStack框架。(2)熟悉OpenStack框架安装流程。【技能目标】(1)能够安装OpenStack框架。(2)能够安装OpenStack云计算平台客户端。(3)能够安装OpenStackSELinux管理包引例描述
现在已经搭建好了本地YUM源和配置好了时间同步服务,已经可以通过本地软件仓库安装软件了。在真正开始安装前,我们思考一个问题,OpenStack云计算平台是一个复杂的多组件系统,是谁将它们有机的联系到一起的?如同一个机构复杂的公司,在各个部门开始运作之前是不是应该先有公司大楼才能容纳下这些部门入驻呢?项目陈述
OpenStack提供了一个云平台框架,它包含很多独立的组件。在组件安装前需要先将这个软件框架安装起来,以后组件才能像搭积木一样一个一个往里面放。
本任务要用到控制节点与计算节点。
安装OpenStack云计算平台框架
在控制节点和计算节点执行如下安装命令。#yum-yinstallopenstack-release-train如果觉得名字过长记不住,还可以用YUM的模糊查询功能,代码如下所示。#yumlist*openstack*train*这条命令会在“/etc/yum.repos.d”下生成“openstack-train.repo”的YUM源文件,在未连接外网时用不到这个配置文件,所以需要将这个文件删除。#
rm-rf/etc/yum.repos.d/openstack-train.repo升级软件
为了让所有已经安装的软件和软件仓库里最新的软件版本保持一致,需要对所有可以升级的软件进行升级。命令如下所示。#yumcleanall#yummakecache#yum-yupgradeupgrade这条命令自动检查所有可以升级的软件包(不包括系统内核)并进行自动升级。OpenStack云计算平台管理客户端
框架安装完成以后还需要安装它的一个客户端用于管理OpenStack云平台。该客户端主要提供了“openstack”这个命令,它集成了几乎所有对OpenStack云平台的管理功能。如下安装该客户端。#yum-yinstallpython-openstackclient
安装客户端以后,我们就可以用openstack命令管理云计算平台了。如查看OpenStack的版本号的命令如下。#
openstack--version小结
OpenStack云计算平台是一个复杂的软件框架结构,可以把它类比为一栋公司大楼,在其中完成具体工作的是大楼内的各个业务部门,如财务部、保卫部、经营部等,在OpenStack中这些“部门”就是
OpenStack里的组件。要入驻“部门”之前就要先有该公司大楼。本节任务就是安装了OpenStack软件框架这个“大楼”。思考1.OpenStackTrain版框架软件包名是什么?2.如果你不记得上问中软件包名时,你会怎么用yum命令查询到软件包名?3.如何用yum命令更新软件?4.OpenStack框架客户端“python-openstackclient”主要提供了()命令用于管理OpenStack云平台?谢谢观看课程OpenStack云计算平台
搭建与管理人民邮电出版社编著:姚骏屏何桂兰项目5云计算平台基础环境准备第11讲安装MariaDB数据库学习目标【知识目标】(1)了解MariaDB数据库。(2)了解MariaDB数据库与MySQL数据库的关系。(3)理解MariaDB数据库的配置文件。(4)应用MariaDB数据库的命令行模式。【技能目标】(1)能够安装MariaDB数据库。(2)能够配置MariaDB数据库。(3)能够初始化MariaDB数据库。(4)能够使用MariaDB数据库。引例描述
我们已经安装好了OpenStack的框架,也就是“大楼”建好了,那是不是就可以入驻各个“部门”了呢?实际上,当办公大楼建好以后还要通水、通电、通网络等才能入驻办公部门。对于OpenStack来说,还需要第三方服务为其提供数据存储、通信、缓存等服务。项目陈述
数据库服务在OpenStack中是非常重要的基础服务,OpenStack云计算平台的每个核心组件都会使用到它来存储相关数据并实现快速检索等功能。
本任务将在控制节点上安装Linux系统中常用的MariaDB数据库。
MariaDB数据库简介
数据库(DataBase,DB)是用于存储和处理数据的软件系统。在目前常用的Oracle、MySQL、SQLServer等数据库中,MySQL得益于其开源、免费、轻量级等特点,成为众多用户的首选。但是当2009年甲骨文公司收购了MySQL后,人们担忧MySQL存在被闭源的潜在风险,因此MySQL的创始人主导开发了完全兼容MySQL、开源、免费的MariaDB数据库。
MariaDB是一个采用Maria存储引擎的MySQL数据库的分支版本。在OpenStack中MariaDB被用于存储用户、角色、网络等信息。安装MariaDB数据库
可使用如下命令安装MariaDB数据库。[root@controller~]#yum-yinstallmariadb-serverpython-PyMySQL
以上命令安装了两个软件包,其中,“mariadb-server”是MariaDB数据库的后台服务,“python-PyMySQL”是实现OpenStack与数据库相连的接口软件。编辑数据库配置文件
接下来对数据库进行配置。MariaDB数据库的配置文件是“/etc/f.d/”下所有后缀为“cnf”的文件。可以新建一个文件进行配置,如下命令将新建一个配置文件。#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其中的“[mysqld]”即表示设置的是数据库的服务端。数据库配置说明参数功能说明port数据库对外服务的端口号,默认为3306datadir数据库文件存放目录bind-address绑定远程访问地址,只允许从该地址访问数据库default-storage-engine默认存储引擎,MariaDB支持几十种存储引擎,其中InnoDB是比较常用的支持事务的存储引擎innodb_file_per_tableInnoDB引擎的独立表空间,让每个表的数据都单独保存max_connections最大连接数collation-server字符的排序规则,也称为排列字符集,每个字符集都对应一个或多个排列字符集character-set-server字符集启动数据库
新安装的数据库是没有启动的,因此需要手动启动数据库。而且如果数据库的配置发生更改,也需要重启数据库服务才能让配置生效。如果数据库无法启动或者启动后数据库的初始化有异常,请检查配置文件中的参数是否有错。[root@controller~]#systemctlenablemariadb#设置开机启动[root@controller~]#systemctlstartmariadb#立即启动服务初始化数据库输入如下命令,并回答其后给出的问题,实现对数据库的初始化工作。#mysql_secure_installation
Entercurrentpasswordforroot(enterfornone):
#输入当前密码,没有则直接按【Enter】键Switchtounix_socketauthentication[Y/n]
n
#是否切换到unix_socket权限验证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
#是否重新加载权限表Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDBinstallationshouldnowbesecure.ThanksforusingMariaDB!使用数据库
管理MariaDB数据库需要先登录,登录用“mysql”命令实现,登录的基本语法如下。mysql-h<数据库服务器地址>-u<用户名>-p<密码>如登录本地数据库:[root@controller~]#mysql-hlocalhost-uroot-p000000由于禁止了远程root登录,所以不能用root用户采用加-h选项的方式远程登录。WelcometotheMariaDBmonitor.Commandsendwith;or\g.YourMariaDBconnectionidis13Serverversion:10.5.22-MariaDBMariaDBServerCopyright(c)2000,2018,Oracle,MariaDBCorporationAbandothers.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.MariaDB[(none)]>由于是登录本机的数据库,因此可以不用写“-h”服务器选项,可以直接写成“mysql-uroot-p000000”。登录以后,出现“MariaDB[(none)]>”命令行后,就可以使用SQL语句来操作数据库了。小结MaraDB数据库来源于MySQL数据库,因此与MySQL数据高度兼容,在使用上几乎别无二致。
安装MariaDB数据库后还需要对其进行配置和初始化才能使用。管理MariaDB数据库时可以用标准的SQL语句进行操作。思考1.MariaDB数据库与什么数据库高度兼容?2.初始化数据库的命令是什么?3.如何用命令创建一个名为abc的数据库?4.如果数据库允许远程连接,数据库的IP地址是“”,用户是“abc”,密码是“123456”,如何登录它?谢谢观看课程OpenStack云计算平台
搭建与管理人民邮电出版社编著:姚骏屏何桂兰项目5云计算平台基础环境准备第12讲安装消息队列服务学习目标【知识目标】(1)了解RabbitMQ消息队列。(2)了解RabbitMQ默认服务端口。(3)综合应用rabbitmqctl命令。【技能目标】(1)能够安装RabbitMQ消息队列。(2)能够配置RabbitMQ消息队列。(3)能够用rabbitmqctl命令管理消息队列。引例描述
由于OpenStack是一个多组件、多服务器构成的计算机集群,它们之间保持高效与安全通信是十分必要的。
通信有多种方式,有类似电话的方式,双方必须同时在线;也有类似发信件的方式,消息发出去就不用管了。
那OpenStack这种多用户使用,组件之间消息不断的系统采用哪种通信方式呢?项目陈述OpenStack平台采用类似于“写信”的方式进行通信,这样不至于通信双方“占线”而其他组件无法与它们进行通信。只要将消息发给一个“邮箱”,发送者就可以去做其他事了,而接收方每隔一段时间就去“邮箱”查收自己的消息,这种通信方式我们采用“消息队列”来实现。
本任务将在控制节点上安装RabbitMQ消息队列服务。
RabbitMQ消息队列
消息队列(MessageQueue,MQ)是一种应用间的通信方式,消息发送到消息队列后由消息队列来确保消息的可靠传递,即消息发布者和消息使用者之间并不产生直接关系。消息发布者只管把消息发布到消息队列中而不用管对方有没有收到,消息使用者只管从消息队列中取出发送给自己的消息。
OpenStack各个组件之间就是通过消息队列进行相互通信的。市面上存在多种消息队列应用,其中RabbitMQ是一个开源的、应用广泛的消息服务系统,通常使用它来为OpenStack提供消息队列服务。安装与启动RabbitMQ消息队列(1)安装RabbitMQ消息队列服务可使用以下命令安装RabbitMQ的服务端。[root@controller~]#yum-yinstallrabbitmq-server(2)启动RabbitMQ消息队列服务按照下面的命令启动RabbitMQ消息队列服务并设置开机自动启动服务。[root@controller~]#systemctlenablerabbitmq-server#设置开机启动[root@controller~]#systemctlstartrabbitmq-server#立即启动管理RabbitMQ消息队列用户
消息队列为了保证安全性,不能让任意用户在队列中存放或获取消息,只能是有权限的用户使用。RabbitMQ用户的用户名和密码由rabbitmqctl命令进行管理。新建RabbitMQ用户的命令如下:rabbitmqctladd_user<用户名><密码>删除RabbitMQ用户的命令如下:rabbitmqctldelete_user<用户名>修改RabbitMQ用户密码的命令如下:rabbitmqctlchange_password<用户名><新密码>管理RabbitMQ消息队列用户
【案例1】给RabbitMQ消息队列创建一个名为“rabbitmq”的用户,密码为“RABBIT_PASS”
[root@controller~]#rabbitmqctladd_userrabbitmqRABBIT_PASS【案例2】给RabbitMQ消息队列的名为“rabbitmq”的用户,更改密码为“000000”[root@controller~]#rabbitmqctlchange_passwordrabbitmq000000【案例3】删除RabbitMQ消息队列的名为“rabbitmq”的用户[root@controller~]#rabbitmqctldelete_userrabbitmq管理RabbitMQ消息队列权限管理RabbitMQ用户权限的代码如下所示。[root@controller~]#rabbitmqctlset_permissionsrabbitmq".*"".*"".*"以上命令给“rabbitmq”这个用户设置了使用队列的权限。命令中的3个“.*”分别对应配置、写入、读取权。命令执行后,“rabbitmq”用户就拥有了对RabbitMQ所有资源的配置、写入与读取权限。如果要查看RabbitMQ的某个用户权限,可以用以下代码。[root@controller~]#rabbitmqctllist_user_permissionsrabbitmqListingpermissionsforuser"rabbitmq"/.*.*.*从运行结果可以看出,每一个RabbitMQ服务器都有一个默认的虚拟机“/”,“rabbitmq”用户对该虚拟机的所有资源拥有配置、写入、读取的权限。检测RabbitMQ消息队列服务每一个服务都是通过特定的一个或者数个端口对外提供服务的,我们只要查看对应端口占用状态,就可以分析出当前服务是否正常运行。RabbitMQ消息队列服务对外服务端口为25672和5672。[root@controller~]#netstat-tnlup
ActiveInternetconnections(onlyservers)ProtoRecv-QSend-Q LocalAddressForeignAddress State PID/Programnametcp 0 0:25672:* LISTEN 50115/beam.smptcp6 0 0:::5672 :::* LISTEN 50115/beam.smp如果能看到25672和5672端口正在监听中,说明RabbitMQ安装成功。小结
消息队列提供了一种消息异步传输的方式,RabbitMQ是一款Linux下常用的消息队列服务软件。
安装RabbitMQ后需要给它设置用户及用户名,并给予其权限后才能使用。管理RabbitMQ可以用rabbitmqctl命令。
RabbitMQ默认服务端口为25672和5672。思考1.使用消息队列时,发送方是否需要等待接收方的响应后才能做下一个工作?2.什么命令用来管理RabbitMQ消息队列?3.如果忘记了RabbitMQ用户名怎么办?4.如果忘了RabbitMQ用户密码怎么办?5.如何看RabbitMQ某个用户的权限?6.RabbitMQ的用户有哪些权限?谢谢观看课程OpenStack云计算平台
搭建与管理人民邮电出版社编著:姚骏屏何桂兰项目5云计算平台基础环境准备第13讲安装Memcached缓存服务学习目标【知识目标】(1)了解Memcached内存缓存服务。(2)了解Memcached默认服务端口。(3)理解Memcached配置参数。【技能目标】(1)能够安装Memcached缓存服务。(2)能够配置Memcached缓存服务。(3)能够通过netstat和telnet命令检查服务运行情况。引例描述
由于OpenStack是一个多用户系统。一些常用的数据会被多个用户反复使用到,如果每次读取都调用硬盘的话会造成I/O阻塞,同时也会大幅减少硬盘寿命。
由于内存的速度比硬盘快很多,同时反复读取也不会对内存造成损害。能不能把经常被调用的数据和文件放到内存中呢?项目陈述
经常用到的数据先存放到内存缓存中,使用时可以直接从内存缓存中读取,由于内存缓存比硬盘的读取速度快很多,因此可以大大提高读取速度。内存缓存服务对于“云”这种多人使用的系统来说可以有效提高效率和降低硬盘的损耗。本任务将在控制节点上安装Memcached服务。Memcached缓存系统
内存缓存(Memcached)是一个高性能的分布式内存对象缓存系统,能够存储各种格式的数据,包括图像、视频、文件,以及数据库检索的结果等。
安装Memcached安装代码如下所示。[root@controller~]#yum-yinstallmemcachedpython-memcached以上代码安装了“memcached”和“python-memcached”两个软件,“memcached”是内存缓存服务软件,“python-memcached”是对该服务进行管理的接口程序软件。安装完成后,系统将自动创建名为“memcached”的用户,可以通过如下代码查询系统用户。[root@localhost~]#cat/etc/passwd|grepmemcachedmemcached:x:995:992:Memcacheddaemon:/run/memcached:/sbin/nologin配置MemcachedPORT="11211"USER="memcached"MAXCONN="1024"CACHESIZE="64"OPTIONS="-l,::1"Memcached的配置文件为“/etc/sysconfig/memcached”。[root@controller~]#vi/etc/sysconfig/memcached这里的“PORT”是服务端口,默认是“11211”;“USER”是用户名,默认是自动创建的用户“memcached”;“MAXCONN”是允许的最大连接数;“CACHESIZE”是最大缓存大小,单位为MB;“OPTIONS”是其他选项,在这里设置监听的地址,默认对本地访问进行监听。更改配置实现对所有地址的监听。OPTIONS="-l,::1"启动Memcached启动并设置开机启动内存缓存服务。[root@controller~]#systemctlenablememcached[root@controller~]#systemctlstartmemcached检查Memcached运行情况方法一:通过端口检查运行情况由于Memcached服务器要通过11211端口对外提供服务,因此通过查看11211端口是否启用可以判断该服务是否启动。[root@localhost~]#netstat-tnlup|grepmemcachedtcp 0 00:11211 :* LISTEN9283/memcachedtcp 0 0:11211 :* LISTEN9283/memcachedtcp6 0 0::1:11211 :::* LISTEN9283/Memcached可以看到0服务器的11211端口已经处于LISTEN状态,说明服务正在运行。检查Memcached运行情况#
telnet011211Trying0...Connectedto0.Escapecharacteris'^]'.方法二:通过telnet命令连接服务器(telnet要先安装yuminstalltelnet)。telnet<服务器地址><端口号>statsSTATpid9283STATuptime4973STATtime1629643005STATversion1.5.6STATlibevent2.0.21-stableSTATpointer_size64STATrusage_user0.961383STATrusage_system0.589234STATmax_connections1024STATcurr_connections3STATtotal_connections5从显示出来的一长串结果中,可以看到当前Memcached服务器运行的各种状态信息。例如,“uptime”是服务器已经运行的秒数,“version”是版本号,“curr_connections”表示当前的连接数等。小结
Memcached是一个高性能的分布式内存对象缓存系统,能为高频调用的数据提供内存缓存,减少磁盘I/O调用。
安装Memcached后需要配置其监听控制节点服务器,然后再启动服务。
检测服务是否正常运行可以用netstat或者telnet命令检查其服务端口是否处于监听可用状态,Memcached默认服务端口为11211。思考1.Memcached提供的是什么服务?2.Memcached的默认服务端口是多少?3.如何用netstat命令检测服务是否正常?4.如何用telnet命令检测服务是否正常?谢谢观看课程OpenStack云计算平台
搭建与管理人民邮电出版社编著:姚骏屏何桂兰项目5云计算平台基础环境准备第14讲安装etcd分布式键-值对存储系统学习目标【知识目标】(1)了解etcd键值对存储系统。(2)理解etcd配置文件中的设置。(3)了解etcd默认端口号。(4)简单应用etcdctl命令管理etcd。【技能目标】(1)能够安装etcd键-值对存储系统。(2)能够配置etcd键-值对存储系统。(3)能够通过netstat命令检查服务运行情况。引例描述OpenStack是一个支持集群的分布式系统,可以拥有众多服务器,也有很多组件,每个组件又对外提供相关服务,这些组件和服务需要如何知道对方的存在呢?这是在分布式系统中比较常见的问题,这个寻找服务的过程也叫做服务发现。项目陈述
为了快速实现服务发现,需要一个服务发现组件用于存储服务提供者的相关配置及注册信息,使用服务的消费者将从该服务发现组件中获得相关信息后再去服务提供者处使用服务。本任务将在控制节点上安装etcd键-值对存储系统,该系统提供了服务发现服务。Memcached缓存系统
etcd是一个开源项目,它的目标是构建一个高可用的分布式键-值(Key-Value)数据库用于配置共享和服务发现。“etcd”这个名字由单机系统存储配置数据的“/etc”目录和分布式系统对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CACM 016.118-2026经方临床应用指南 猪苓汤
- T/CRRA 0709-2023催化燃烧废催化剂的收集、包装和采样
- 2025~2026学年湖北省孝感市大悟县人教版六年级上册11月期中数学试卷【附答案】
- 湖北省襄阳市第七中学2027届九年级数学第一学期期末达标测试试题含解析
- 2025-2026学年广西壮族自治区百色市初中数学七年级期末下册通关提优特训题附答案
- 2025-2026学年浙江省江山市初中数学九年级期末上册高分通关专项攻坚题附答案
- Photoshop上机考试试题分析及详细参考答案
- 2025-2026学年福建省石狮市初中生物八年级期末下册自测仿真模拟题(详细参考解析)
- 绿色施工全员培训及责任落实方案
- 酸碱灼伤应急处置操作规程
- 2026年水处理行业市场分析报告:市场规模与增长潜力
- 河北省爱英才大数据联考2027届高三年级10月联考历史试题卷+答案
- 护理管理中的人文关怀
- 医院项目社会稳定风险评估报告
- 自考03450公共部门人力资源管理 重点精简版
- 2026年新疆事业单位招聘统考真题(全科目含答案解析)
- 2026年高考化学试题(湖南卷)+答案
- 腰部运动康复课件
- 光伏档案资料管理方案
- 护理心理学第十章临床各类病人的心理护理三
- 2026年公开遴选公务员考试(计算机知识)经典试题及答案
评论
0/150
提交评论