《私有云基础架构与运维》-实训文档_第1页
《私有云基础架构与运维》-实训文档_第2页
《私有云基础架构与运维》-实训文档_第3页
《私有云基础架构与运维》-实训文档_第4页
《私有云基础架构与运维》-实训文档_第5页
已阅读5页,还剩199页未读 继续免费阅读

下载本文档

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

文档简介

私有云基础架构与运维私有云基础架构与运维云计算技术应用教研室编著一.OpenStack单节点部署 31.1准备OpenStack单节点部署的安装环境 31.2通过Packstack工具完成OpenStack的单节点部署 9二.在私有云平台上创建虚拟机实例 12三.实现虚拟机与外部网络的通信 30四.通过SSH访问虚拟机实例 34五.在虚拟机实例上创建及使用卷挂载 37六.OpenStack云平台双节点基础环境部署 426.1.OpenStack云平台双机部署的准备工作 426.2.本地域名解析 506.3.更新系统YUM源 516.4.部署时间同步服务 526.5.更新OpenStack仓库 546.6.部署消息队列服务 566.7.部署数据库服务 576.8.部署Memcached内存缓存服务 596.9.部署etcd分布式键-值对存储系统 60七.部署Keystone服务 617.1创建数据库并授权 627.2完成Keystone服务的部署 647.3Keystone服务组件初始化 677.4OpenStack云平台的登录验证 697.5Keystone服务的各项管理 70八.部署Glance服务 798.1创建数据库并授权 798.2部署Glance服务 808.3初始化Glance组件 858.4验证Glance组件 878.5管理Glance镜像服务 88九.部署Placement服务 919.1安装与配置Placement服务 919.2Placement服务组件初始化 969.3验证Placement服务 99十.部署Nova服务 99任务10.1控制节点部署Nova服务 100任务10.2计算节点部署Nova服务 116任务10.3验证Nova服务 122十一.部署Neutron服务 12511.1Neutron服务在controller节点的部署 12511.2Neutron服务在compute节点的部署 13911.3Neutron服务在controller节点的验证 146十二.部署Cinder服务 14912.1创建数据库并授权 14912.2部署Cinder服务 15012.3初始化Cinder组件 15512.4验证Cinder组件 15912.5在计算节点搭建存储服务 15912.6在计算节点部署Cinder服务 16212.7在控制节点验证Cinder服务 164十三.部署Dashboard服务 16513.1安装与配置Dashboard服务 16513.2发布Dashboard服务 16813.3验证Dashboard服务 170

一.OpenStack单节点部署1.1准备OpenStack单节点部署的安装环境为方便实验,本项目采用虚拟机来建立实验环境。在安装Windows操作系统的计算机中通过VMvareWorkstation软件创建一台运行CentOS8的虚拟机作为实验平台。1.虚拟机的硬件配置在创建该虚拟机时,要保证虚拟机的硬件配置满足OpenStack的最低要求,本项目中使用Packstack安装工具安装单节点OpenStack主机的最低配置要求,如下表1-1所示:表1-1部署单节点OpenStack云平台对硬件设备的最低配置要求硬件\需求详细信息CPU支持Intel64或AMD64CPU扩展,并启用了AMD-v或IntelVT硬件虚拟化支持的64位x86处理器,逻辑CPU个数为4核内存至少8GB网络1个1Gbit/s网卡(网卡以NAT模式接入宿主机网络)硬盘空间至少20GB本项目中,配置单节点OpenStack云平台虚拟机的硬件配置如图1-1所示。图1-1虚拟机的硬件配置情况2.设置网络环境在进行OpenStack单节点安装部署时,虚拟机网卡的模式设置为NAT模式,如图1-2所示。【说明】虽然NAT模式是常用的网络模式之一,但OpenStack还支持其他网络模式(如桥接模式和Host-Only模式)。根据具体需求,可以灵活地选择适合的网络模式来部署虚拟机。图1-2网络适配器配置本项目中虚拟机网卡的网段设置为/24,即VMnet8所对应的网段。打开VMware虚拟机软件主页面,单击菜单栏中的【编辑】菜单,在下拉菜单中选择【虚拟网络编辑器】选项,此时打开虚拟网络编辑器窗口,如图1-3所示。可以在此配置网卡所在的网段以及此网段所对应的网关。在图1-3中配置子网的IP网段为,子网掩码为。在图1-3中单击【NAT设置】按钮,弹出如图1-4所示的NAT设置窗口,在此可以配置该网络的网关为,然后单击最下面的【确定】按钮即可。【说明】虚拟机安装成功后,网卡会默认VMnet1为仅主机模式,网段也会默认为,不用修改,不影响项目的配置。图1-3虚拟网络编辑器配置图1-4NAT设置3.虚拟机初始化配置在进行虚拟机节点部署之前,为了确保虚拟机的正常运行,提高系统的整体性能和稳定性,首先要对虚拟机进行初始化配置,包括配置虚拟机的网络、主机名、防火墙、YUM文件、存储等参数,确保虚拟机能够顺利运行各种应用程序和服务。此外,初始化配置还可以提高系统的安全性,防止未经授权的访问和数据泄露‌。(1)网卡配置设置了网卡模式为NAT模式,并配置了虚拟机所在的网段和网关。因此,虚拟机的IP地址就应该属于该网段,本项目中虚拟机IP地址配置为0,默认网关为,DNS服务器的IP地址配置为(公网中Google提供的免费DNS服务器的IP地址)。启动虚拟机,配置该虚拟机的网卡配置文件ifcfg-ens160,该配置文件存储在/etc/sysconfig/network-scripts路径下,采用vi或者vim命令打开其配置文件进行配置,其配置内容如下:[root@localhost~]#vi/etc/sysconfig/network-scripts/ifcfg-ens160TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noNAME=ens160UUID=f1689dcb-e1f9-46d0-b158-b069d2935666DEVICE=ens160ONBOOT=yesIPADDR=0NETMASK=GATEWAY=DNS1=使用nmcli命令使配置的网卡信息生效,然后重启虚拟机,执行如下命令:[root@localhost~]#nmclicupens160[root@localhost~]#nmclidreapplyens160[root@localhost~]#nmclidconnectens160[root@localhost~]#reboot(2)更改主机名[root@localhost~]#hostnamectlset-hostnameopenstack[root@localhost~]#bash[root@openstack~]#cat/etc/hostslocalhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain60openstack(3)禁用防火墙与SELinux[root@openstack~]#systemctlstopfirewalld[root@openstack~]#systemctldisablefirewalldRemoved/etc/systemd/system/multi-user.target.wants/firewalld.service.Removed/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.0#临时禁用SELINUX[root@openstack~]#setenforce0[root@openstack~]#cat/etc/selinux/config#修改SELINUX的属性值SELINUX=disabled(4)免密登录[root@openstack~]#ssh-keygen[root@openstack~]#ssh-copy-idroot@0(5)停用NetworkManager服务CentOS8网络默认是由NetworkManager(网络管理器)负责管理,但是NetworkManager与OpenStack网络组件Neutron有冲突,应停用它,改用传统的网络服务network来管理网络。执行以下命令来停用NetworkManager服务。[root@openstack~]#systemctldisableNetworkManagerRemoved/etc/systemd/system/multi-user.target.wants/NetworkManager.service.Removed/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.Removed/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.[root@openstack~]#systemctlstopNetworkManager(6)YUM源配置CentOSLinux8作为RHEL8的复刻版本,生命周期缩短,后期如果需要更新CentOS,需要更换源,将镜像从更改为。[root@openstack~]#cd/etc/yum.repos.d/[root@openstack~]#sed-i's/mirrorlist/#mirrorlist/g'/etc/yum.repos.d/CentOS-*[root@openstack~]#sed-i's|#baseurl=|baseurl=|g'/etc/yum.repos.d/CentOS-*[root@openstack~]#yummakecache[root@openstack~]#yumupdate-y(7)启动powertools存储库Extras存储库提供了启用OpenStack存储库的RPM(Red-HatPackageManager,软件包管理工具)。Extras在CentOS8上是默认启用的,因此可以安装yum管理工具后,直接来设置OpenStack存储库。[root@openstack~]#yuminstall-yyum-utils[root@openstack~]#yum-config-manager--enablepowertools【说明】Extra存储库是指一种用于存储和管理额外数据的数据库。在传统的数据库中,我们通常使用表格来存储和组织数据,每个表格包含一组列和行,每行代表一个记录,每列代表一个字段。但有时候,我们需要存储一些与主要数据不直接相关的额外信息,例如图片、文件、文本等。这些额外的数据无法通过传统的表格结构来存储,因此需要使用Extra数据库来处理。1.2通过Packstack工具完成OpenStack的单节点部署1.准备所需的软件库CentOS8提供的附加软件库中包含启用OpenStack库的RPM包,只需执行以下命令就可以设置OpenStack库(支持Ussuri版本)。[root@openstack~]#yumlistcentos-release-openstack*[root@openstack~]#yuminstall-ycentos-release-openstack-ussuri安装完成centos-release-openstack-ussuri后,重新更新下yum源:[root@openstack~]#sed-i's/mirrorlist/#mirrorlist/g'/etc/yum.repos.d/CentOS-*[root@openstack~]#sed-i's|#baseurl=|baseurl=|g'/etc/yum.repos.d/CentOS-*2.安装Packstack安装器执行以下命令安装openstack-openstack及其依赖包。[root@openstack~]#yumupdate-y[root@openstack~]#reboot[root@openstack~]#yum-yinstallopenstack-packstack安装过程中需要安装许多依赖包,如openstack-packstack-puppet等。Packstack是RDOOpenStack的安装工具,用于取代手动设置OpenStack。Packstack基于Puppet工具,通过Puppet来部署OpenStack各组件。Puppet是一种Linux、UNIX和Windows平台的集中配置管理系统,使用自由的Puppet描述语言,可管理配置文件、用户、任务、软件包、系统服务等。Puppet将这些系统实体称为资源,其设计目标是简化对这些资源的管理,妥善处理资源间的依赖关系。Packstack的安装器的基本用法如下。packstack[选项][--help]执行packstack–help命令列出选项清单,这里给出部分选项及其说明。--gen-answer-file=GEN_ANSER_FILE:产生应答文件模板--answer-file=ANSWER_FILE:依据应答文件的配置信息以非交互模式运行该工具。--install-hosts=INSTALL_HOSTS:在一组主机上进行批量安装,主机列表以逗号分隔。第一台主机作为控制节点,其他主机作为计算节点。如果仅提供一台主机,将集中在单节点上以“All-in-One”方式安装。--allinone:将所有功能集中安装在单一主机上。此外,还有许多具体定义安装内容的全局性选项。例如,--ssh-public-key=SSH_PUBLIC_KEY用于设置安装在服务器上的公钥路径;--default-password=DEFAULT_PASSWORD用于设置默认密码(会被具体服务或用户的密码所覆盖);--mariadb-install=MARIADB_INSTALL用于设置是否安装MARIADB数据库。3.通过Packstack安装OpenStack在实际应用中多使用应答文件所提供的配置选项进行部署。首次测试的,可以考虑直接使用“All-in-One”方式进行单节点部署。“All-in-One”方式是RDO官方网站上提供的向导模式,只需在执行Packstack命令时加上—allinone选项。请留意,当在界面中出现“successfully”字样时,说明OpenStack安装成功。[root@openstackyum.repos.d]#packstack--allinoneWelcometothePackstacksetuputilityTheinstallationlogfileisavailableat:/var/tmp/packstack/20230802-234854-9m97ujjj/openstack-setup.logInstalling:CleanUp[DONE]Discoveringipprotocolversion[DONE]Settingupsshkeys[DONE]Preparingservers[DONE]PreinstallingPuppetanddiscoveringhosts'details[DONE]Preparingpre-installentries[DONE]SettingupCACERT[DONE]PreparingAMQPentries[DONE]PreparingMariaDBentries[DONE]FixingKeystoneLDAPconfigparameterstobeundefifempty[DONE]PreparingKeystoneentries[DONE]PreparingGlanceentries[DONE]CheckingiftheCinderserverhasacinder-volumesvg[DONE]PreparingCinderentries[DONE]PreparingNovaAPIentries[DONE]CreatingsshkeysforNovamigration[DONE]GatheringsshhostkeysforNovamigration[DONE]PreparingNovaComputeentries[DONE]PreparingNovaSchedulerentries[DONE]PreparingNovaVNCProxyentries[DONE]PreparingOpenStackNetwork-relatedNovaentries[DONE]PreparingNovaCommonentries[DONE]PreparingNeutronAPIentries[DONE]PreparingNeutronL3entries[DONE]PreparingNeutronL2Agententries[DONE]PreparingNeutronDHCPAgententries[DONE]PreparingNeutronMeteringAgententries[DONE]CheckingifNetworkManagerisenabledandrunning[DONE]PreparingOpenStackCliententries[DONE]PreparingHorizonentries[DONE]PreparingSwiftbuilderentries[DONE]PreparingSwiftproxyentries[DONE]PreparingSwiftstorageentries[DONE]PreparingGnocchientries[DONE]PreparingRedisentries[DONE]PreparingCeilometerentries[DONE]PreparingAodhentries[DONE]PreparingPuppetmanifests[DONE]CopyingPuppetmodulesandmanifests[DONE]Applying0_controller.pp0_controller.pp:[DONE]Applying0_network.pp0_network.pp:[DONE]Applying0_compute.pp0_compute.pp:[DONE]ApplyingPuppetmanifests[DONE]Finalizing[DONE]****Installationcompletedsuccessfully******Additionalinformation:*ParameterCONFIG_NEUTRON_L2_AGENT:YouhavechosenOVNNeutronbackend.NotethatthisbackenddoesnotsupporttheVPNaaSorFWaaSservices.Genevewillbeusedastheencapsulationmethodfortenantnetworks*Anewanswerfilewascreatedin:/root/packstack-answers-20230802-234855.txt*Timesynchronizationinstallationwasskipped.PleasenotethatunsynchronizedtimeonserverinstancesmightbeproblemforsomeOpenStackcomponents.*File/root/keystonerc_adminhasbeencreatedonOpenStackclienthost0.Tousethecommandlinetoolsyouneedtosourcethefile.*ToaccesstheOpenStackDashboardbrowseto0/dashboard.Please,findyourlogincredentialsstoredinthekeystonerc_admininyourhomedirectory.*Becauseofthekernelupdatethehost0requiresreboot.*Theinstallationlogfileisavailableat:/var/tmp/packstack/20230802-234854-9m97ujjj/openstack-setup.log*Thegeneratedmanifestsareavailableat:/var/tmp/packstack/20230802-234854-9m97ujjj/manifests至此,已经完成OpenStack单机版的部署。控制台消息的最后部分提示了环境变量文件和日志文件的位置,以及登录Dashboard的方法。根据提示,在浏览器中输入http://主机IP地址/dashboard,可以登录OpenStack的Dashboard界面。在Dashboard界面中,可以与每个OpenStack项目API进行通信并执行部分任务。二.在私有云平台上创建虚拟机实例1.准备镜像(Images)镜像在创建虚拟机实例过程中扮演着至关重要的角色,是创建虚拟机实例的基础。它可以为虚拟机提供最基础的操作系统,也可以作为虚拟机的模板,包含了操作系统、应用程序和配置等信息。通过创建镜像,用户可以快速部署相同配置的虚拟机实例,无需从头开始设置操作系统和相关应用程序。这种方式显著提高了部署速度,降低了人为错误的可能性,使得虚拟机实例能够在短时间内启动并投入使用。(1)以admin用户身份登录OpenStack云平台Web控制台,采用云平台管理员身份进行操作,在左侧导航窗格中展开【管理员】—>【计算】—>【镜像】节点,显示当前的镜像列表,如图2-1所示。图2-1默认的镜像列表使用Packstack安装器安装OpenStack时,默认预置一个名为“cirros”的镜像。这是一个测试用的Linux操作系统镜像,在图2-1中可以看到。cirros是一个公有的(免费)、体积非常小的Linux操作系统发行版,一般用于OpenStack测试。但是这个预置的cirros操作系统镜像太小了,才273个字节,使用它创建的虚拟机实例启动后无法正常运行。因此,可以将这个预置的镜像删除,从Cirros官网上下载一个新的Cirros操作系统镜像,并通过创建镜像,将下载的新镜像上传到OpenStack云平台上,提供给将要创建的虚拟机实例作为其安装操作系统的镜像。(2)在图2-1中,点击“启动”后面的下拉框,选择【删除镜像】,可以直接删除镜像,如图2-2所示。图2-2删除镜像删除“cirros”镜像后,接下来,可以从Cirros官网上(/)下载一个Cirros操作系统的镜像文件,版本不要太低,这里下载的版本是0.6.2版,如图2-3所示。图2-3Cirrors镜像下载下载完毕后,单击图2-1中的【创建镜像】按钮,弹出如图2-4所示的对话框,在【镜像名称】文本框中输入镜像名称,此时输入“cirros”;在【镜像源】下单击【浏览】按钮,打开已下载的镜像文件所在的路径,选择已下载的镜像文件;在【镜像格式】下拉列表中选择“QCOW2-QEMU模拟器”,注意将【可见性】改为“公有”(该镜像由云管理员创建,此时可以让所有云平台下的项目使用)。最后,在图2-4中单击右下角的【创建镜像】按钮,即可将新创建的镜像上传到OpenStack云平台中,如图2-5所示,在镜像列表中可以查看到刚刚上传的新镜像cirros。图2-4创建Cirros操作系统镜像图2-5新镜像上传后列表2.查看实例类型云主机也被称为实例,而实例类型(Flavor)相当于在创建云主机的虚拟硬件时,所选用的配置模板。该模板中定义了包括内存和硬盘大小、CPU个数等云主机信息,OpenStack云计算平台依据这个配置模板可以用来批量生产云主机。OpenStackM版及之前的云计算平台系统存在默认的实例类型。从OpenStackN版以后就没有默认的实例类型了,需要系统管理员自行定义。实例类型由admin云管理员管理,普通用户无权管理。以admin用户身份登录OpenStack,在左侧导航窗格中展开【管理员】>【计算】>【实例类型】节点,显示当前的实例类型列表,如图2-6所示。这里使用的是OpenStack的U版,默认提供的5个实例类型可以满足大部分云主机实例的需求。当然用户也可以根据自己的需求在图2-6中,单击右上角的【创建实例类型】来创建新的实例类型。图2-6实例类型列表有了上述的准备工作,实际上就可以创建云主机了,但在实际情况下,一般是先创建云平台的网络环境,也就是创建云主机所在的网络,确定云主机的IP地址等信息。因此,接下来,先来创建云平台的网络环境。3.创建网络和路由创建和管理网络是OpenStack环境中非常重要的一部分,它不仅支持虚拟化环境的隔离和安全性,还提供了灵活、可扩展的解决方案,以适应不断变化的企业需求。通过合理配置和使用OpenStack网络功能,可以最大化地利用云资源,提高IT服务的效率和可靠性。以admin用户身份登录OpenStack,在左侧导航窗格中展开【管理员】>【网络】>【网络】节点,显示当前的网络列表,如图2-7所示。默认显示“private”和“public”两个网络。“private”网络属于demo项目的私有网络,admin用户不能使用,但是可以管理;“public”网络属于admin项目的外部网络,并且是不可共享的,即其他项目无法看到该“public”网络的子网信息。图2-7网络列表同样在左侧导航窗格中展开【管理员】>【网络】>【路由】节点,显示当前的路由列表,如图2-8所示,默认显示“router1”的路由,此路由属于demo项目,admin用户不能使用,同样可以管理。图2-8路由列表如果项目默认的网络以及网段不符合云平台的要求,可以把原来的路由器“router1”、网络“private”和“public”分别删除。在图2-7所示的网络列表界面,选中网络“private”和“public”前面的复选框,单击右上角的删除网络,即可删除两个网络。在图2-8所示的路由列表界面选中路由器“router1”复选框,单击右上角的删除路由即可删除该路由。删除成功后,可以创建云平台所需的网络和路由。创建云主机之前,首先要创建用于连接云主机的内部网络(内网),创建云主机访问的外部网络(外网),以及用于连接内外网的路由器。外网及其子网只能由云管理员创建,而创建内网及其子网则可以由云管理员或者是该项目的管理员来创建。(1)创建网络a)创建外部网络选择【管理员】>【网络】选项卡,在窗口中单击右上角的【创建网络】按钮,弹出【创建网络】对话框,如图2-9所示。首先在【网络】选显卡中填写相应信息,【名称】栏中填写“out”为该外网起名;【项目】选择该外网所对应的项目,此时选择“admin”项目;【供应商网络类型】选择Flat;【物理网络】填写“extnet”;勾选【启用管理员状态】、【外部网络】、【创建子网】三个复选框。完成后单击【下一步】按钮。图2-9创建外部网络(网络选项卡)进入【子网】选项卡配置界面,如图2-10所示。【子网名称】栏中填写“sub-out”,为子网起名字;【网络地址】栏中填写/24(该地址与虚拟机中VMnet8虚拟网卡的网络地址保持一致,即可通过该网卡与外界网络通信,本虚拟机VMnet8虚拟网卡所在的网段是/24,可通过虚拟机的虚拟网络编辑器查看,如图2-11所示),【网关】栏填写(该网关与VMnet8虚拟网卡的网关要保持一致,本虚拟机VMnet8虚拟网卡所在网络的网关是,可以在图2-11中单击【NAT设置S…】按钮查看,如图2-12所示)。完成【子网】选项卡配置后,在图2-10中单击【下一步】按钮。图2-10创建外部网络(子网选项卡)图2-11查看VMnet8网卡所在的网络图2-12VMnet8网卡网关IP 此时进入【子网详情】选项卡配置页面,勾选【激活DHCP】功能复选框,赋予该网络可以动态分配IP地址的功能。在【分配地址池】栏中填写“,0”(保持与VMnet8网卡在同一网段即可),设置该网络可以动态分配IP地址的范围;【DNS服务器】栏中填写为该网络解析的DNS服务器的IP地址,如(阿里云免费的DNS服务器地址)或者(Google免费的DNS服务器的IP地址)。完成该选项卡填写后,单击图2-13中的【创建】按钮,完成外部网络的创建。图2-13创建外部网络(子网详情选项卡)外部网络创建成功后将返回到网络列表界面,此时可显示当前创建成功的网络,如图2-14所示。图2-14外部网络创建成功界面创建内部网络外部网络创建成功后,接下来创建内部网络。内部网络用于连接云主机实例。依次单击【项目】>【网络】>【网络】选项卡,由项目管理员来创建内网,如图2-15所示。此时窗口中可以看到刚刚创建成功的外部网络out。图2-15项目管理下的网络在图2-15中单击右上角的【创建网络】按钮,弹出创建内部网络界面,如图2-16所示。在【网络】选项卡配置界面,填写【网络名称】为“inner”,确保选中【创建子网】复选框,完成后,在图2-16中单击【下一步】按钮。图2-16创建内部网络界面(网络选项卡)此时弹出【子网】选项卡配置页面,根据管理员的规划,依次填写【子网名称】、【网络地址】以及【网关IP】的内容,如图2-17所示。其中,【网关IP】默认使用内部网络中的第一个IP地址。如果不允许该网络中的云主机访问外部网络,则勾选【禁用网关】复选框。完成上述配置后,单击图2-17中【下一步】按钮。图2-17创建内部网络界面(子网选项卡)此时弹出【子网详情】选项卡页面,如图2-18所示。确保勾选【激活DHCP】复选框,启动内网DHCP服务器功能,可以为内网中的云主机动态分配IP地址,并填写【分配地址池】和【DNS服务器】。完成上述配置后,单击图2-18中【创建】按钮。图2-18创建内部网络界面(子网详情选项卡)完成创建后返回网络列表页面,显示当前已经创建成功的网络。如图2-19所示。图2-19查看网络列表此时,也可以通过查看网络拓扑,直观上看到当前网络的状态。单击【项目】>【网络】>【网络拓扑】,如图2-20所示。此时可以看到已经创建了两个网络,内网inner和外网out。但两个网络现在是独立的,没有任何连接,下面创建路由来连接内外网。图2-20查看网络拓扑图创建路由内外网络创建完成后,还需要创建路由来实现内部网络和外部网络之间的连接和转发。依次单击【项目】>【网络】>【路由】选项卡,并单击右上角的【新建路由】按钮,在弹出的【新建路由】页面,填写【路由名称】为“router”;选择该路由连接的外部网络,此时选择“out”,完成上述配置后,单击【新建路由】按钮,如图2-21所示。图2-21创建路由完成后将返回到路由列表界面,显示当前创建成功的路由信息,如图2-22所示。图2-22路由列表界面成功创建路由并选择外部网络之后,路由将自动连接外部网络的接口,但此时,路由还没有与内部网络接口相连。在图2-22中单击路由名称“router”超链接,进入路由详细信息页面,如图2-23所示。在【概况】选项卡中可以看到,新创建的路由默认SNAT激活状态。单击【接口】选项卡,在该选项卡中单击右上角的【增加接口】按钮。弹出【增加接口】界面,如图2-24所示。在【子网】下拉列表框中选择之前创建成功的内部网络【inner:10.0.0./24(sub-inner)】即可,然后单击【提交】按钮。图2-23配置路由界面图2-24增加路由接口界面返回到路由接口列表界面,显示当前的路由接口,状态为【运行中】,如图2-25所示。图2-25路由器接口列表此时,再次查看网络拓扑图,可以看到如图2-26所示的网络拓扑状态,此时路由已经连接了内外网络。至此,网络和路由创建完成。图2-26创建好网络路由的网络拓扑图在云平台上,云主机作为企业的核心服务器承载着关键业务和数据,其安全性显得尤为关键。云主机的安全性不仅关乎企业数据的保密性、完整性和可用性,还直接影响到业务的连续性和企业的声誉。特别是在访问规则的配置上,稍有疏忽就可能为黑客攻击或数据泄露留下隐患。为了确保云主机的安全,在访问规则层面,可以根据业务需求,为云主机配置精细化的访问控制规则,明确哪些IP地址、用户组或者网段可以访问云主机的哪些端口和服务。此外,企业还应定期审查和调整访问规则,及时关闭不必要的端口和服务,降低被攻击的风险。在OpenStack云平台中,可以通过定义一系列访问规则,称为安全组,来保证云主机的安全,因此在创建云主机之前,一般先定义好安全组规则。4.添加安全组规则每个项目可以定义自己的安全组。虚拟机实例也就是云主机,可以关联这些安全组,通过安全组规则在一定程度上保证云主机的访问安全。以admin用户身份登录OpenStack,在左侧导航窗格中展开【项目】>【网络】>【安全组】节点,显示当前的安全组列表,如图2-27所示。图2-27安全组列表默认有一个名为“default”的安全组,单击该安全组条目右侧的【管理规则】按钮,显示如图2-28所示的界面,界面中列出了该安全组当前已有的规则。规则有出口和入口两个方向,默认的前两条规则(分别对应IPv4和IPv6的以太网类型)定义的出口,是虚拟机实例访问外网的规则,此时允许该虚拟机实例可以访问任何外部网络;后两条规则定义的入口,是外部网络访问虚拟机实例的规则,此时不允许任何外部网络访问该虚拟机实例,但是关联该默认安全组的虚拟机实例之间是可以相互访问的。图2-28安全组规则列表在后续项目中,允许从外部网络中通过SSH协议访问该虚拟机实例,并且可以使用ping工具测试虚拟机实例的连通性等服务,因此需修改默认的规则,开放相应服务。在图2-28中,单击【添加规则】按钮,在弹出的【添加规则】对话框中设置详细的规则。如图2-29所示。从【规则】下拉列表中选择“ALLICMP”选项,【方向】选择“入口”,单击【添加】按钮,完成本次规则的添加。同样增加“ALLICMP”的“出口”方向的规则。因为ping命令属于ICMP协议,并且ping是双向的,一去一回的,因此要同时开放入口ping和出口ping协议。本次操作中【CIDR】栏中默认是/0,即允许所有外网设备都可以对该虚拟机实例进行ping操作,也可根据实际需求,设置允许ping的主机IP地址,或者某网段地址。如果继续设置规则,比如,“ALLTCP”的“出口”和“入口”方向的两个规则,“ALLUDP”的“出口”和“入口”方向的两个规则。即可以允许外网的所有主机对该虚拟机实例通过任何方式进行访问。具体操作,需要根据实际需求设置。图2-29添加AllICMP规则新添加的规则会出现在安全组规则列表中,如图2-30所示。这些规则用于控制从外部网络到虚拟机实例(入口)或从虚拟机实例到外部网络(出口)的通信。图2-30新添加的安全组规则5.创建虚拟机实例完成上述准备工作之后,即可着手创建虚拟机实例。以admin用户身份登录OpenStack,在左侧导航窗格中展开【项目】>【计算】>【实例】节点,在项目中创建对应的实例。此时可以显示当前项目的实例列表,如图2-31所示,此时admin项目默认没有任何实例。图2-31admin项目的实例列表下面基于本项目前期上传的cirros操作系统镜像创建一个虚拟机实例,具体操作步骤如下:(1)在图2-31中单击【创建实例】按钮,启动创建实例向导,如图2-32所示。在【详情】选项中的【实例名称】文本框中输入该实例名称为“VM1”,并设置实例的数量(默认为1),【可用域】默认使用“nova”计算服务即可。图2-32设置实例名称和数量(2)在图2-32中左侧,选择【源】选项,也可以在图2-32中单击【下一项】按钮,此时,可以看到图2-33所示窗口。选择实例源,这里以镜像(Image)作为实例的源,将【删除实例的删除卷】设置为“是”,并从可用的镜像列表中选择“cirros”镜像,其他选项保持默认设置即可。这里将【创建新卷】设置为“是”会使该实例具有持久性的存储;如果将其设置为“否”,则该实例将使用临时性存储。图2-33设置实例的源(2)在图2-33左侧选择【实例类型】选项(或单击【下一项】按钮),此时可以看到图2-34所示窗口选择实例类型。由于所用的镜像很小,这里选择分配系统资源最少的“m1.tiny”实例类型,即创建的虚拟机实例对应1个虚拟内核,内存为512MB,磁盘为1个GB。图2-34选择实例类型(3)继续选择【网络】选项,为实例选择所在的网络。在admin项目中创建了内部网络inner和外部网络out,这里选择inner私有网络,如图2-35所示。图2-35为实例选择网络(4)选择【安全组】选项,为实例选择要关联的安全组。在admin项目中有一个默认安全组,这里就自动选择该安全组。如图2-36所示。图2-36为实例选择安全组(5)其他选项保持默认设置即可,此时,单击图2-36中右下角的【创建实例】按钮,完成虚拟机的创建。创建完成返回实例列表界面,实例的创建需要一定的时间,等待片刻可以看到该虚拟机已经创建成功。如图2-37所示。图2-37实例创建成功界面6.操作和使用虚拟机实例在实例列表中可以看到创建实例的基本信息和状态,如图2-38所示,现在实例的状态(Status)是运行。也可以通过实例列表最后的【Actions】对实例执行管理操作,从下拉菜单中可选择多种操作指令,如创建快照、关闭实例、删除实例、重启实例等。图2-38实例列表及实例操作菜单在图2-38中,可以通过单击实例的名称进入实例详情页面,如图2-39所示。【概况】选项卡中显示该实例概况,除名称等基本信息外,还包括规格、IP地址、安全组、元数据以及连接的卷等信息。图2-39实例详情界面在图2-39中可以切换到【控制台】选项卡,对该实例进行交互操作。如图2-40所示。基于cirros操作系统镜像创建的虚拟机实例启动后会提示登录的用户名和密码,可以直接登录,登录成功后可进行测试操作。如此时控制台无响应,可以单击控制台右上角的“sendCtrlAltDel”按钮,进入控制台。图2-40VM1实例的控制台三.实现虚拟机与外部网络的通信1.配置宿主机要实现虚拟机与外部网络的通信需要将OpenStack主机网卡添加到br-ex网桥,宿主机的br-ex网桥用于连接OpenStack虚拟网络,虚拟网络访问互联网必须经过宿主机的真实网卡ens192(网卡的名字因操作系统的不同有所不同)。宿主机在br-ex和ens192之间转发流量可以通过三种方式。将ens192网卡加入br-ex网桥,取消ens192配置的IP地址,配置br-ex为宿主机外部网络的IP地址段。开启宿主机的路由功能,通过路由转发数据,同时配置宿主机的回包路由。配置宿主机的NAT功能,通过路由加地址转换转发数据,不需要回包路由,不需要修改现有网段。下面基于第一种方式进行操作介绍。具体操作如下:#修改网络配置文件[root@openstacknetwork-scripts]##cd/etc/sysconfig/network-scripts[root@openstacknetwork-scripts]#cpifcfg-ens192ifcfg-br-ex[root@openstacknetwork-scripts]#lsifcfg-br-exifdown-Teamifdown-ibifdown-ovsifdown-sitifup-TeamPortifup-ibifup-ovsifup-pppifup-wirelessifcfg-ens192ifdown-TeamPortifdown-ipppifdown-postifdown-tunnelifup-aliasesifup-ipppifup-plipifup-routesinit.ipv6-globalifcfg-loifdown-bnepifdown-ipv6ifdown-pppifupifup-bnepifup-ipv6ifup-plusbifup-sitnetwork-functionsifdownifdown-ethifdown-isdnifdown-routesifup-Teamifup-ethifup-isdnifup-postifup-tunnelnetwork-functions-ipv6[root@openstacknetwork-scripts]#viifcfg-br-ex#主要修改TYPE为OVSBridge,将DEVICETYPE修改为ovs,将NAME和DEVICE修改为br-ex[root@openstacknetwork-scripts]#catifcfg-br-exTYPE=OVSBridgeDEVICETYPE=ovsBOOTPROTO=noneNAME=br-exDEVICE=br-exONBOOT=yesIPADDR=0NETMASK=GATEWAY=DNS1=#修改ens192配置文件,主要将TYPE修改为OVSPort,并添加最后两行定义[root@openstacknetwork-scripts]#viifcfg-ens192[root@openstacknetwork-scripts]#catifcfg-ens192TYPE=OVSPortNAME=ens192DEVICE=ens192ONBOOT=yesDEVICETYPE=ovsOVS_BRIDGE=br-ex#重启network服务使修改生效[root@node-anetwork-scripts]#systemctlrestartnetwork#外部网桥br-ex获得原ens192网卡的IP配置,而ens192网卡作为该网桥上的一个端口后,可以没有IP地址[root@openstacknetwork-scripts]#ipaddr1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWNgroupdefaultqlen1000link/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet/8scopehostlovalid_lftforeverpreferred_lftforeverinet6::1/128scopehostvalid_lftforeverpreferred_lftforever2:ens192:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscmqmasterovs-systemstateUPgroupdefaultqlen1000link/ether00:0c:29:df:9d:fbbrdff:ff:ff:ff:ff:ffinet6fe80::20c:29ff:fedf:9dfb/64scopelinkvalid_lftforeverpreferred_lftforever3:ovs-system:<BROADCAST,MULTICAST>mtu1500qdiscnoopstateDOWNgroupdefaultqlen1000link/ether16:2e:5b:97:43:d7brdff:ff:ff:ff:ff:ff4:br-int:<BROADCAST,MULTICAST>mtu1442qdiscnoopstateDOWNgroupdefaultqlen1000link/etherba:15:ef:0e:35:31brdff:ff:ff:ff:ff:ff5:tap7fc02921-29:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1442qdiscfq_codelmasterovs-systemstateUNKNOWNgroupdefaultqlen1000link/etherfe:16:3e:af:18:44brdff:ff:ff:ff:ff:ffinet6fe80::fc16:3eff:feaf:1844/64scopelinkvalid_lftforeverpreferred_lftforever6:tap9e0d613d-40@if2:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscnoqueuemasterovs-systemstateUPgroupdefaultqlen1000link/ether6a:99:d7:f1:43:25brdff:ff:ff:ff:ff:fflink-netnsovnmeta-9e0d613d-41e8-4358-a060-a721569bce0ainet6fe80::6899:d7ff:fef1:4325/64scopelinkvalid_lftforeverpreferred_lftforever7:br-ex:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscnoqueuestateUNKNOWNgroupdefaultqlen1000link/ether00:0c:29:df:9d:fbbrdff:ff:ff:ff:ff:ffinet0/24brd55scopeglobalbr-exvalid_lftforeverpreferred_lftforeverinet6fe80::7c0f:3eff:feb5:9748/64scopelinkvalid_lftforeverpreferred_lftforever2.分配浮动IP地址OpenStack虚拟机实例需要分配两个IP地址。一个是私有地址,是由内部网络DHCP服务器自动分配给虚拟机实例内部网络接口的IP地址,也是我们常说的IP地址。此地址在虚拟机实例中使用IP地址查看命令可以查看到,因为是内部网络地址,因此,该IP地址的作用是在内网设备之间相互访问使用的。另一个地址叫浮动IP地址,是一个公网地址。这是由Neutron组件提供的服务。可以通过外部网络的DHCP服务器自动分配,也可以由管理员进行手动静态配置。事实上,虚拟机实例并不知道它被分配了一个浮动IP地址,将数据包发送到分配有浮动IP地址的网络接口的工作由Neutron负责。外部网络是通过该浮动IP地址来访问虚拟机实例的。接下来为OpenStack的虚拟机实例分配浮动IP地址。(1)依次单击【项目】>【计算】>【实例】选项卡,显示创建的所有实例列表,在右侧的【创建快照】旁边的下拉箭头选择【绑定浮动IP地址】如图3-1所示。图3-1实例列表界面(2)此时进入到【管理浮动IP的关联】界面,如图3-2所示,单击【IP地址】栏中的“+”号,进入分配浮动IP界面,如图3-3所示。图3-2管理浮动IP的关联界面(3)在图3-3页面中选择【资源池】为out,单击【分配IP】按钮后,返回到【管理浮动IP的关联】界面,如图3-4所示。图3-3分配浮动IP(4)在图3-4中可以看出已经为此主机分配到了一个IP地址02。单击【关联】按钮返回实例列表界面。图3-4管理浮动IP的管理界面(5)可以看到在实例列表VM1虚拟中的【IPAddress】这一栏中有两个IP地址,分别是76和02。此时,浮动IP地址成功分配给了虚拟主机VM1。图3-5实例列表界面(6)单击超链接【VM1】进入虚拟机概况界面,选择【控制台】选项卡,进入VM1虚拟机,在虚拟机里通过ping命令,测试跟宿主机和外部网络的连通性,如图3-6所示,可以看出虚拟机实例是可以连通外部网络的。图3-6云主机与外部网络的连通性测试四.通过SSH访问虚拟机实例云计算管理员在进行虚拟机服务器管理和维护时,因安全性和高效性等原因不是采用直接登录的方式,而是通过一台客户机,使用SecureCRT工具软件,通过SSH协议来远程连接虚拟机实例进行管理和维护工作。常见的终端仿真软件包括SecureCRT、Xshell、PuTTY和Terminus。这些软件各具特色,例如SecureCRT支持多种协议,Xshell则以其强大的功能和用户友好页面受到广泛欢迎。下面就SecureCRT做以下介绍:1.SecureCRT介绍SecureCRT是一款专业的终端仿真程序,支持SSH、Telnet、Rlogin等多种协议,为IT专业人士提供了安全的远程访问和数据传输解决方案。它通过提供安全的通道来保护网络通信,避免敏感数据在传输过程中被窃取或篡改。此外,SecureCRT还提供了多种高级功能,如脚本支持、会话管理、文件传输和多窗口分屏等,极大地提高了用户的工作效率。对于需要在多个系统间进行远程管理的用户,SecureCRT不仅确保了操作的安全性,还提供了一个用户友好的界面和丰富的配置选项,以适应各种工作场景和个性化需求。2.通过SecureCRT连接虚拟机实例(1)从SecureCRT的官方网站(/)下载并安装SecureCRT软件。安装完成后,双击桌面上的SecureCRT图标启动程序。‌在打开的SecureCRT工具窗口最上面的菜单栏中,选择【文件】>【连接】,会弹出【快捷连接】窗口,如图4-1所示。图4-1新建会话窗口(2)在弹出的【快速连接】窗口中填写虚拟主机的IP地址以及相应连接参数。如图4-2所示。【协议(P)】选择SSH2协议;【主机名(H)】中输入虚拟主机的浮动IP地址02;【端口(O)】为SSH2协议的连接端口号22;【用户名(U)】输入虚拟主机登录用户名cirros(云主机安装好后的默认管理员密码),单击【连接】按钮,此时,需要提供cirros对应的密码是gocubsgo,正确输入密码后即可成功连接此虚拟机实例,如图4-3所示。图4-2SecureCRT快速连接界面图4-3SecureCRT成功连接虚拟机实例3.文件传输SecureCRT还提供了文件传输功能。在打开的SecureCRT工具窗口最上面的工具栏中,单击如图4-4所示的小图标即可弹出SecureFX【文件传输】窗口,如图4-5所示。通过文件传输窗口可以把本地主机和远程主机的文件相互传输。在传输文件时,可以选择使用ASCII模式或Binary模式,以适应不同的文件类型。图4-4打开SecureFX窗口按钮图4-5文件传输界面4.会话管理SecureCRT支持会话分组、会话管理器、会话日志等功能,方便管理多个远程连接。可以通过“Options”菜单访问各种设置选项,如外观设置、键盘映射、脚本设置等,根据自己的喜好进行个性化设置。如图4-6所示。图4-6设置会话界面字体大小及背景色五.在虚拟机实例上创建及使用卷挂载1.首先创建一个卷,依次单击【项目】>【卷】>【卷】选项卡,在页面右边单击【+创建卷】按钮,如图5-1所示。图5-1查看卷信息2.在弹出的【创建卷】页面中,填写【卷名称】为“VM1-lv”,【大小(GiB)】为“2”,其他选项保持默认。完成后单击【创建卷】按钮,如图5-2所示。图5-2创建卷3.创建成功后返回到卷列表界面,显示当前创建成功的卷信息,如图5-3所示。4.卷创建好之后,还需要和实例关联才可以使用。从图5-3中的【编辑卷】下拉列表中选择【管理连接】,弹出如图5-4所示的【管理已连接卷】界面,选择【连接到实例】为之前创建的云主机VM1,完成后单击【连接卷】按钮。图5-3卷列表图5-4管理已连接卷5.连接卷完成后会自动返回卷列表页面中,显示当前卷已经连接到云主机VM1上的/dev/vdb设备中,如图5-5所示。图5-5卷列表6.进入到云主机控制台,执行fdisk命令查看磁盘情况,如下命令所示:$sudofdisk-lDisk/dev/vda:1GiB,1073741824bytes,2097152sectorsUnits:sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDisklabeltype:gptDiskidentifier:83E1BD1F-EF8A-4997-8E0E-65E38FB771F4DeviceStartEndSectorsSizeType/dev/vda118432209711820786871015MLinuxfilesystem/dev/vda15204818431163848MEFISystemPartitiontableentriesarenotindiskorder.Disk/dev/vdb:2GiB,2147483648bytes,4194304sectorsUnits:sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytes$注意:创建卷的时候指定的容量大小并不会立即占用磁盘空间,只有当卷中有数据时才会真正占用。7.当云主机的卷空间不足时,需要对卷进行扩容,扩容之前首先对卷进行分离。在图5-5中卷列表页面选择【编辑卷】下拉列表中的【管理连接】,弹出如图5-6所示的【管理已连接卷】页面,单击卷对应的【分离卷】按钮。图5-6管理已连接卷8.在弹出的【确认分离卷】页面中继续单击【分离卷】按钮,如图5-7所示。图5-7确认分离卷9.返回到卷列表页面,显示当前卷没有连接到任何实例,如图5-8所示。图5-8分离卷后的卷列表10.在图5-5中当前卷VM1-lv对应的【编辑卷】下拉列表中选择【扩展卷】。弹出如图5-9所示的【扩展卷】页面中,填写卷的新大小为“4”。完成后单击【扩展卷】按钮,。图5-9扩展卷11.扩展完成自动返回到卷列表页面,可见页面中的卷大小信息已经更新为4GB,如图5-10所示。图5-10扩展后的卷列表12.继续在卷VM1-lv对应的【编辑卷】下拉列表中选择【管理连接】,重新连接到云主机实例VM1,如图5-11所示。图5-11卷重新连接列表13.登录VM1云主机控制台,再次执行fdisk命令查看磁盘情况,可以发现大小变为4GB,执行命令和结果如下所示:$sudofdisk-lDisk/dev/vda:1GiB,1073741824bytes,2097152sectorsUnits:sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDisklabeltype:gptDiskidentifier:83E1BD1F-EF8A-4997-8E0E-65E38FB771F4DeviceStartEndSectorsSizeType/dev/vda118432209711820786871015MLinuxfilesystem/dev/vda15204818431163848MEFISystemPartitiontableentriesarenotindiskorder.Disk/dev/vdb:4GiB,4294967296bytes,8388608sectorsUnits:sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytes六.OpenStack云平台双节点基础环境部署6.1.OpenStack云平台双机部署的准备工作本项目搭建的是OpenStack两个节点的云平台,需要两台带双网卡的虚拟机。首先创建一台虚拟机作为控制节点,在控制节点虚拟机的基础上,可以使用VMwareWorkstation自带的克隆功能,克隆生成完全一样的计算节点虚拟机,然后再根据需求修改相应的配置即可。在VMwareWorkstation中中创建一台名为controller的虚拟机,安装过程与项目1的任务1.6中创建虚拟机的过程相同,需要注意的是创建的虚拟机的硬件配置略有不同,进行以下说明。(1)创建虚拟机时,虚拟机命名为controller,并选择一个大容量的磁盘存储,如图6-1所示。磁盘容量设置为100GB,如图6-2所示。图6-1新建虚拟机时设置虚拟机名称和存放位置图6-2新建虚拟机时设置磁盘容量(2)在创建完成的controller虚拟机上,打开虚拟机设置,如图6-3所示。参照controller节点的硬件配置情况,将内存调整为8GB,如图6-4所示。将处理器总数调整为4,并在【虚拟化引擎】下勾选【虚拟化IntelVT-x/EPT或AMD-V/RVI(V)】,开启虚拟化,如图6-5所示。图6-3打开虚拟机设置界面图6-4调整内存为8GB图6-5调整处理器内核总数为4并开启虚拟化图6-6添加镜像文件(3)添加系统镜像文件。在虚拟机设置界面,单击【CD/DVD(IDE)】,右侧的【设备状态】确保是选中状态,【连接】里选择【使用ISO镜像文件(M)】,从【浏览】中选择CentOS8系统所需的镜像文件,如图6-6所示。(4)添加网卡并完成网络适配器的类型选择。依然在虚拟机设置界面,选择【网络适配器】,单击下方的【添加】,弹出【添加硬件向导】,在【硬件类型】里单击【网络适配器】,如图6-7所示,单击右下方【完成】,这样就完成了网卡的添加。单击第一个【网络适配器】,为了后续配置YUM仓库时可以从网络中下载所需的文件,在右侧显示的【网络连接】中选择【桥接模式】。第二个网络适配器的网络连接方式选择【NAT模式】,如图6-8所示。图6-7添加网络适配器图6-8两个网络适配器连接方式虚拟机设置里各项数据设置完成之后,点击下方的【确定】按钮,才能保存上面的各项设置。之后就可以开启虚拟机安装了。(5)在VMwareW

温馨提示

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

评论

0/150

提交评论