作者:何相龙(p_xlhhe@tencent.com),2020年12月7日
本指南在Oracle Linux R7U5 x86_64 版本进行测试,理论上适用于R7 x86_64版本中各子版本。其他Linux发行版的操作方法也可结合官网文档参考本指南。
本指南仅供参考,不提供任何保证,请按实际情况操作。
一、 准备工作
1. 硬件环境:PC机一台,内存8G(推荐16G),双核CPU(推荐四核以上)
2. 操作系统:推荐Windows 10(至少Windows 7)。
3. 从Oracle官网下载安装镜像文件(此文档使用OracleLinux-R7-U5-Server-x86_64-dvd.iso)。
二、 创建虚拟机
1. 点击页面上方的新建按钮。
2. 设置虚拟机名称、存储位置、系统版本。
3. 设置虚拟机内存大小(推荐2G-4G,此处的配置与实际导入后创建的云服务器配置无关)
4. 选择“现在创建硬盘”
5. 选择VMDK格式
6. 选择动态分配空间
7. 设置虚拟硬盘存储位置,设置硬盘大小,记录文件位置备用。
8. 点击页面上方的设置按钮
9. 选择“系统”-“处理器”,配置合适的处理器数量(此处的配置只是为了加快系统安装过程,与实际导入后创建的云服务器配置无关),然后点击“OK”按钮。
10. 注意:该虚拟机不要创建快照,以免导入失败。
三、 安装Oracle Linux
1. 启动虚拟机
2. 单机下拉框右侧的“浏览”按钮
3. 点击弹出页面上方的“注册”按钮
4. 选择您之前下载的Oracle Linux镜像
5. 选择上一步注册的镜像,点击“选择”
6. 单击“启动”
7. 使用键盘选择“Install Oracle Linux 7”
8. 等待安装程序加载,在语言选择界面选择中文。
9. 在安装信息摘要页面,分别配置“软件选择”和“安装位置”、“网络和主机名”
10. 在“安装目标位置”页面配置分区,此处保持自动分区。如需手动分区,请务必使用MBR格式分区,EFI引导。
11. 在“网络和主机名”页面,打开网络开关,然后点击“配置”
12. 选择“常规”标签,然后选中“可用时自动链接到这个网络”,保存配置。
13. 完成上述配置后,点击“开始安装”
14. 在“用户设置”页面,依次设置Root密码、创建用户。
15. 等待安装完成(可能需要较长时间),点击“重启”。(此时系统会自动释放安装镜像)
16. 注:在所有步骤中,请勿安装Virtualbox GuestAdditions。
四、 安装并配置cloud-init(有GUI的服务器)
1. 等待系统引导,在“初始设置”页面,仔细阅读并接受License。
2. 确认网络配置无误后点击“完成配置”按钮。
3. 选择用户名,输入密码,登录到操作系统。
4. 保持默认“汉语”设置,点击“前进”。
5. 保持默认输入法配置,点击“前进”。
6. 根据您的实际情况,选择是否接受位置服务,点击“前进”。
7. 跳过在线账号配置。
8. 点击“开始使用Oracle Linux Server”
9. 关闭“Getting Started”窗口。
10. 点击“应用程序”-“终端”
11. 切换到root用户,然后输入root账号密码
12. 安装cloud init工具
yum install cloud-init -y
13. 下载cloud init配置文件
wget https://cloudinit-1251783334.cos.ap-guangzhou.myqcloud.com/centos/cloud.cfg
14. 用上一步下载的配置文件覆盖默认配置文件
mv ./cloud.cfg /etc/cloud/cloud.cfg -f
15. 确认cloud-init是否配置成功
16. 删除运行记录
17. 关闭虚拟机
五、 安装并配置cloud-init(无GUI的服务器)
1. 等待系统引导,使用root账户登录服务器。
2. 安装cloud init工具和wget工具
yum install cloud-init wget -y
3. 下载cloud init配置文件
wget https://cloudinit-1251783334.cos.ap-guangzhou.myqcloud.com/centos/cloud.cfg
4. 用上一步下载的配置文件覆盖默认配置文件
mv ./cloud.cfg /etc/cloud/cloud.cfg -f
5. 确认cloud-init是否配置成功
6. 删除运行记录
7. 关闭虚拟机
六、 上传镜像并导入镜像
1. 登录腾讯云,打开对象存储COS控制台,点击左侧的“存储桶列表”,然后点击“创建存储桶”。
2. 在“创建存储桶”页面,设置存储桶名称,选择所属地域为您后续要创建云服务器的地域(如有多个,可任选其一),然后设置权限为“公有读私有写”,点击确定按钮,创建存储桶。
3. 在存储桶页面,点击“上传文件”按钮。
4. 在“上传文件”对话框,点击“选择文件”选择您的虚拟机VMDK磁盘镜像文件(在2.7步设置),然后点击“上传”。
5. 点击页面右上角的“任务进行中”可以查看上传进度。
6. 耐心等待文件上传完成。上传完成后,点击刚才上传文件右侧的“详情”按钮。
7. 复制对象地址,备用。
8. 打开云服务器控制台,点击左侧的“镜像”标签,然后在页面上方选择您后续要创建云服务器的地域(如有多个,可任选其一),点击“自定义镜像”,最后点击页面中部的“导入镜像”。
9. 在“导入镜像”页面,确认操作系统选择为Linux,阅读操作须知,然后勾选“我已做好上述准备”,点击“下一步”。
10. 在“镜像文件URL”处,粘贴在5.7步复制的对象地址;地域选择您后续要创建云服务器的地域(如有多个,可任选其一);系统架构选择“64位”;系统平台选择“Other Linux”;系统版本选择“-”;导入方式选择“正常”;根据实际需要配置镜像名称和描述。
11. 确认提示信息,点击“开始导入”。
12. 导入过程可能将耗时较长时间,请您耐心等待。系统将通过短信、邮件、站内信等方式通知您镜像导入结果。
13. 导入成功后,您可以在页面上看到自定义镜像信息。
七、 后续操作
1. 使用导入的镜像创建云服务器
A. 点击镜像右侧的“创建实例”
B. 确认镜像信息,然后点击“确定”。
C. 在“选择机型页面”可以看到,系统已自动选择该镜像,根据向导提示,完成其他配置,即可创建服务器。
D. 您也可以在使用常规入口创建服务器时,选择该自定义镜像。
E. 请注意,实例创建完成后,需要使用在腾讯云上创建实例时设置的密码/加载的密钥登录,而不是使用在本地虚拟机创建的用户。如遗忘密码,请使用腾讯云云服务器控制台的重置密码功能。
2. 将导入的镜像复制到其他地域
A. 点击镜像右侧的“更多”,然后点击“跨地域复制”
B. 勾选目标地域,然后点击“确定”
C. 跨地域复制过程可能将耗时较长时间,请您耐心等待。系统将通过短信、邮件、站内信等方式通知您镜像复制结果。
D. 复制成功后,您可以在页面上看到自定义镜像信息。
3. 将导入的镜像共享给其他腾讯云账号
A. 点击镜像右侧的“共享”
B. 输入对方账户的账户ID(UIN),点击确定。
C. 操作完成后,对方可在“共享镜像”页面查看该镜像,并可用其创建云服务器。
八、 使用VMWare Workstation Pro
相比VirtualBox,使用VMWare Workstation相对更为复杂,这里推荐首选使用免费且开源的VirtualBox进行镜像制作。此章节提供给有特殊要求、需要使用VMWare Workstatio制作镜像的用户参考。
本段落编写过程使用VMware Workstation 15 Pro(15.5.2)进行测试。
1. 创建虚拟机、加载系统ISO镜像、创建硬盘(存储为单个文件)
2. 设置内存容量、CPU核心数,开启虚拟化引擎。
3. 安装Oracle Linux操作系统(略)。
4. 安装完成后,重启前注意卸载安装镜像光盘。
5. 检查是否安装了virtio驱动,并进行安装
A. 第一步检查
grep -i virtio /boot/config-$(uname -r)
a. 如CONFIG_VIRTIO_BLK和CONFIG_VIRTIO_NET参数取值为 y,表示该操作系统包含了Virtio驱动,则跳过此步骤,开始安装cloud-init。
b. 如结果中没有CONFIG_VIRTIO_BLK和CONFIG_VIRTIO_NET参数,则需编译内核(https://cloud.tencent.com/document/product/213/9929#.E4.B8.8B.E8.BD.BD.E5.92.8C.E7.BC.96.E8.AF.91.E5.86.85.E6.A0.B8)。
c. 如CONFIG_VIRTIO_BLK和CONFIG_VIRTIO_NET参数取值为 m,则继续检查B。
B. 第二步检查
lsinitrd /boot/initramfs-$(uname -r).img | grep virtio
a. 如返回结果包括virtio_blk、virtio.ko、virtio_pci.ko、virtio_ring.ko等,则可跳过此步骤,开始安装cloud-init。
b. 如返回结果为空,则需重新配置临时文件系统initramfs,使其包含virtio驱动。
C. 配置virtio驱动(如A测试结果为c项,且B测试结果为b项则执行)
a. 备份原文件
cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
b. 重新配置临时文件系统
mkinitrd -f --with=virtio_blk --with=virtio_pci /boot/initramfs-$(uname -r).img $(uname -r)
D. 重新进行检查
lsinitrd /boot/initramfs-$(uname -r).img | grep virtio
6. 安装并配置Cloud-init(略)。
7. 上传镜像至COS并导入自定义镜像(略)。
8. 注:在所有步骤中,请勿安装VMWare Tools。
九、 结论
本文档编写时,经测试,导入的镜像工作正常,控制台重置密码、实例监控等功能正常。
本文档操作过程总体简单易行、耗时适中。
十、 资源回收
1. 删除COS存储桶内上传的VMDK镜像。
2. 删除本地虚拟机,及相关虚拟硬盘文件。
3. (如不再需要)删除导入的自定义镜像。
4. (如不再需要)销毁创建的云服务器。
十一、 参考文档