主机迁移实践_主机迁移方案实践,2024年最新软件测试面试笔试题目

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

cloud-init安装

关于Cloud-init和Cloud-base的安装,官网上也给出了参考文档。而Linux系统作为常用的系统,本文的实践示例则以Cloud-init为例。

cloud-init简单介绍

cloud-init 主要提供了一个实例首次初始化时的自定义配置的能力,如果导入的镜像没有安装cloud-init服务,通过该镜像启动的实例就不会被正常初始化,因此该镜像就会导入失败。因此再制作镜像之前应当在系统内安装cloud-init。

  • Cloud-Init
    是一个用来自动配置虚拟机的初始设置(如主机名、网卡、用户名和密码等)的开源工具;常用于在创建虚拟机时通过元数据服务对虚拟机基本配置,即主要用于解决云计算场景下使用不同镜像创建子机初始化问题。
  • cloud-init仅仅在系统启动时运行,不会常驻系统;
  • 需要将cloud-init设置开机启动,且不能在首次开机启动后取消cloud-init的开机启动。虽然第一次开启启动,cloud-init运行了之后初始化正常了,然而考虑到后续用户有重置密码、修改ip、加载密钥等需求,仍需要依赖cloud-init,所以如果用户在cloud-init初始化之后就取消了其开机启动则会在用户重启系统之后,影响重置密码、修改ip、加载密钥等功能;
  • cloud-init每次启动的时候会根据预先配置好的数据源从metadata server 或 configDrive
    里面拉取实例元数据对虚拟机进行初始化(该初始化操作只有在虚拟机首次启动时才会被执行),拉取userdata的信息执行用户自定义的脚本行为;
  • 当系统启动时,cloud-init 可完成包括但不限于下面的定制化工作:

设置 default locale
设置 hostname
添加 ssh keys到 .ssh/authorized_keys 设置用户密码
配置网络 安装软件包

cloud-init 安装 tips

cloud-init的安装其实还是挺简单的,最麻烦的是安装依赖包。不同操作系统的依赖包的依赖包的版本还不一样,如果是不能联网的情况下安装,更是一件麻烦的事情。详细步骤可以查看官网文档Linux 系统安装 cloud-init,而我在此则仅补充相关tips,希望对大家有帮助。

  • 直接通过apt-get 或 yum 命令安装的cloud-init
    版本默认为当前操作系统配置的软件源里面默认的cloud-init版本,通常情况下和cloud-init
    最新版本存会存在比较大的差异,使用这种方式安装的镜像创建出来的实例可能会存在部分配置项初始化不符合预期的情况,建议使用手工下载最新cloud-init源码包的方式进行安装。
  • 如果机器能联网,可直接运行命令进行安装依赖包,参考命令如下:

yum intstall -y python-setuptools python-jinja2 python-prettytable python2-oauthlib python-configobj PyYAML python-requests python-jsonpatch python-six

  • 如果机器不能联网,则可以找台与要制作镜像的机器同操作系统版本的可以联网的机器,然后新建一个requirement.txt,将需要安装的cloud-init的包都放进去requirement.txt,然后运行命令 pip download -d -r requirements.txt,这样全部的依赖包都会被下下来了,最后,再将这些包放入那台需要制作的机器即可。
    在这里插入图片描述
    ** requirement.txt的截图**
  • 最后,补充一份我实际测试时安装的依赖包,供参考:

certifi-2017.11.5
chardet-3.0.4
configobj-5.0.6
functools32-3.2.3-2
idna-2.6
Jinja2-2.10
jsonpatch-1.20
jsonpointer-1.14
jsonschema-2.6.0
MarkupSafe-1.0
oauthlib-2.0.6
prettytable-0.7.2
PyYAML-3.12
requests-2.18.4
setuptools-38.2.4
six-1.11.0
urllib3-1.22

  • 说明,以上依赖包我都是用pip安装的,可以在https://pypi.python.org/pypi 下载。
  • 也可以安装rpm包,可以在http://mirrors.cloud.tencent.com/epel/
    找合适的包来安装。安装完成之后,请运行以下命令检查下是否都安装好了

rpm -qa | grep setuptools
rpm -qa | grep jinja2
rpm -qa | grep prettytable
rpm -qa | grep oauthlib
rpm -qa | grep configobj
rpm -qa | grep PyYAML
rpm -qa | grep requests
rpm -qa | grep jsonpatch
rpm -qa | grep jsonschema
rpm -qa | grep six

  • 如果没有安装好,在安装cloud-init的时候也会提示缺少某某依赖包,到时候按照要求再安装即可;
  • 需要安装的依赖包,其实都装cloud-init安装包的requirements.txt文件中定好了包括版本要求。cat
    /cloud-init-17.2/requirements.txt即可查看。

修改 cloud-init 配置文件 tips

发现部分用户,安装好cloud-init之后就制作镜像了,上传到腾讯云之后,创建了CVM会发现一些异常,检查会发现,原来是没有按照官方要求进行cloud-init 配置文件的修改导致的。所以,这个步骤千万别漏了。很重要哈。
官网上给出了ubuntut和centos的参考配置文件,直接下载,然后替换即可。

设置 cloud-init 服务开机自启动 tips

这块的操作官网也给出了详细的文档说明,但是是以systemd 自启动服务管理为例。而实际上是需要根据当前操作系统使用的自启动服务管理方式是什么进行选择,如果选择出错则 cloud-init 服务无法开机自启动。
比如,在我的测试中,则发现systemctl: command not found,我测试的操作系统版本则是用service命令来启动。
关于安装cloud-init后的操作
经常有些用户辛辛苦苦把镜像上传到cos了,到了导入镜像,半天过去导入失败了,才发现cloud-init的安装有问题。那么,如何可以确认我们安装的cloud-init是没问题的呢?下面的方法,供参考。

1、 运行cloud-init init —local

2、执行 ll /var/lib/cloud,正常会看到如下截图内容
在这里插入图片描述

  • 3、执行rm -rf /var/lib/cloud
  • 4、重启你的服务器,正常情况下,每次重启都会成/var/lib/cloud
  • 5、也可以执行cloud-init status看下状态是否正常。

将镜像导入COS

将镜像文件上传到COS,有多种工具可支持,详情可参考官网文档COS 用户工具,也可以使用控制台的方式将镜像上传至COS。由于操作较为简单,我就不再重复演示。

导入镜像功能使用
关于导入镜像的详细介绍可查看官网文档导入镜像概述,该功能需要开启白名单方可使用。相关操作演示如下,仅供参考。

1、登录镜像控制台,选择地域(请选择与存放镜像的COS的bucket同个地域),然后点击【导入镜像按钮】。
在这里插入图片描述
2、阅读导入镜像的步骤,并且确认所有准备步骤已经完成。
在这里插入图片描述
3、填写信息,并且开始导入。

  • 关于镜像文件URL:选择存储镜像的bucket,找到镜像文件,然后点击【文件信息】,在弹出来的框里面,把【源文件链接】的信息复制出来,就是镜像文件URL了

在这里插入图片描述
在这里插入图片描述

  • 关于地域,请选择Bucket(存放镜像文件的Bucket)所在的地域。其余的信息,如实按照镜像的实情填写即可。
    在这里插入图片描述
  • 关于导入方式,如果正常安装了cloud-init,则选择【正常】,否则请选择【强制】。
    在这里插入图片描述
    补充,若非级特殊的情况无法安装cloud-init,否则请不要选择强制导入。强制导入的镜像,由于没有cloud-init,基于该镜像创建的CVM,无法初始化,需要再创建CVM之后,登录操作系统进行许多初始化操作,是一件较为麻烦的事情。
  • 最后,则是点击【开始导入】,等待一段时间之后,会有站内信通知导入的结果。由于没有进度条之类的信息,无法预估预计还需要多久才能有结果。期间可以登录操作日志控制台进行查看状态。
    在这里插入图片描述
    操作日志控制台
    在这里插入图片描述
  • 镜像导入成功之后,则可以登录镜像控制台,找到已经成功导入的镜像,然后基于该镜像创建云主机。
    在这里插入图片描述

服务迁移工具使用

近期腾讯云也推出了新功能【服务迁移】,和【导入镜像】的功能的差异,简单描述如下。

1、导入镜像,只能导入系统盘,数据盘无法导入。而使用【云服务器迁移】功能,可以将系统盘和数据盘都导入到腾讯云。

2、导入功能,步骤是把存在COS的镜像导入到镜像控制台,然后再基于该镜像创建CVM;而云服务器迁移则是,直接从COS上拉取镜像文件,用该镜像置换一个已存在的CVM实例的系统盘,从而实现迁移。(同理,数据盘的迁移也是一个类似的过程。得先创建CVM或者CBS,再使用云服务器迁移的功能。)

离线实例迁移
在这里插入图片描述
下面是相关操作步骤,仅供参考。

1、 点击【新建】按钮新建一个迁移任务
在这里插入图片描述
2、了解迁入准备工作
在这里插入图片描述
3、填写相关信息,开始迁移。

  • 填写任务名称
  • 填写COS链接,即镜像文件的COS链接,同导入镜像时需要填写的COS链接。
  • 选择需要迁入的云主机。正如我上面提到的,使用服务迁移的功能进行迁移,是需要预先创建一台CVM,然后将导入的镜像置换此台CVM的系统盘,从而完成迁移。
    在这里插入图片描述
    4、等待迁移任务完成,可以在控制台中看到进度。
    在这里插入图片描述
    5、迁移100%完成之后,用户则可以到云主机控制台找到刚刚迁入的云主机,重新开机启动即可。

离线数据迁移

离线数据迁移指的是迁移数据盘。数据盘也是可以制作成一个镜像,上传至COS,然后使用【离线数据迁移】的功能,将数据盘的镜像文件迁移到CBS中。相关步骤类似【离线实例迁移】。
在这里插入图片描述
1、 点击【新建】按钮新建一个迁移任务

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-3pl78L3O-1713452628038)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值