实验名称
云服务器自定义镜像导入
实验介绍
本期实验练习介绍了如何向火山引擎导入一个自定义镜像文件,并转换为镜像。在开始实验前需要先进行如下准备工作:
- TOS对象存储中创建存储桶
- 安装VirtualBox虚拟机
- 下载CentOS7镜像
关于实验
预计部署时间:60分钟 级别:初级 相关产品:镜像 受众:通用
准备工作
1. 在TOS对象存储控制台创建一个存储桶
2.安装VirtualBox虚拟机
- 安装virtualbox虚拟机,官网:https://www.virtualbox.org/。
点击Download下载虚拟机,下载完成后,点击exe应用程序文件根据向导一步一步进行安装。 安装完成后,配置环境变量。
- 设置virtualbox命令的环境变量。 打开控制面板—>点击环境变量—>选择“Path”,点击“新建”—>输入“C:\Program Files\Oracle\VirtualBox”—>点击完成。
3. 下载CentOs7镜像
下载地址:https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/
4. 配置虚拟机并安装CentOS操作系统
- 点击新建,创建属于自己的虚拟机,名称和存储路径自定义。类型及版本根据自己的需求进行设置,并点击下一步。
- 进行内存分配,内存大小根据自己的需要进行设置,最少不能少于512MB,并点击下一步。
- 选择现在创建虚拟硬盘,并点击下一步。
- 磁盘类型选择VDI,下一步。
- 根据自己的需要设置文件存储位置及大小,并点击创建。
- 创建完成后,点击新建的虚拟机,点击启动。启动时需要进行启动盘的选择,将提前下载好的镜像文件选择导入,然后启动。
- 进入安装界面后,语言选择中文或其他,并点击继续。
- 出现所示的界面,点击“安装位置”,在新窗口中点击完成。
- 为了让后续虚拟机使用时可以正常联网,点击“网络和主机名”,打开网络,点击完成。显示已连接,点击“开始安装”。
- 显示“正在安装”,安装过程中设置用户名及密码。
- 安装完成后点击重启,开始使用VirtualBox虚拟机(CentOs7系统)。
5. cloud-init安装配置
- 在虚拟机上安装cloud-init.20.3版本。
wget https://launchpad.net/cloud-init/trunk/20.3/+download/cloud-init-20.3.tar.gz
- CentOs7系统,依次执行以下操作安装cloud-init。
tar zxvf cloud-init-20.3.tar.gz
cd cloud-init-20.3
yum install python3 -y
yum install python3-pip -y
yum install cloud-utils-growpart -y
# 建议在国内可以使用清华源 pip 进行安装
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
python3 setup.py build
python3 setup.py install --init-system systemd
ln -s /usr/local/bin/cloud-init /usr/bin/cloud-init
systemctl enable cloud-init-local.service
systemctl enable cloud-init.service
systemctl enable cloud-config.service
systemctl enable cloud-final.service
- 替换cloud-init 配置文件,执行vi /etc/cloud/cloud.cfg命令,替换配置文件内的如下内容后,执行:qw保存修改。
users:
- default
disable_root: 0
ssh_pwauth: 1
growpart:
mode: auto
devices: ['/']
ignore_growroot_disabled: false
mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2']
resize_rootfs_tmp: /dev
ssh_deletekeys: 1
syslog_fix_perms: ~
disable_vmware_customization: false
manage_etc_hosts: localhost
cloud_init_modules:
- disk_setup
- migrator
- bootcmd
- write-files
- growpart
- resizefs
- set_hostname
- update_hostname
- update_etc_hosts
- rsyslog
- users-groups
- ssh
cloud_config_modules:
- mounts
- locale
- set-passwords
- rh_subscription
- yum-add-repo
- package-update-upgrade-install
- timezone
- puppet
- chef
- salt-minion
- mcollective
- disable-ec2-metadata
- runcmd
cloud_final_modules:
- rightscale_userdata
- scripts-per-once
- scripts-per-boot
- scripts-per-instance
- scripts-user
- ssh-authkey-fingerprints
- keys-to-console
- phone-home
- final-message
- power-state-change
system_info:
# distro: rhel # centos则打开此配置
paths:
cloud_dir: /var/lib/cloud
templates_dir: /etc/cloud/templates
ssh_svcname: sshd
- 更换cloud-init 数据源,创建文件/etc/cloud/cloud.cfg.d/90_dpkg.cfg,并写入以下内容。
cd /etc/cloud/cloud.cfg.d
touch 90_dpkg.cfg
在命令行界面输入 vi 90_dpkg.cfg
开始编辑此文件,如下:
datasource_list: [ConfigDrive, OpenStack]
datasource:
OpenStack:
metadata_urls:["http://169.254.169.254","http://100.96.0.96"]
max_wait: -1
timeout: 5
retries: 5
apply_network_config: True
至此虚拟机安装和初始化完成。
具体导入步骤
1. 转换虚拟磁盘vdi格式为raw格式
格式转换命令:
VBoxManager.exe clonemedium --format RAW .\yinsiyu.vdi centos.img
当出现下图所示内容时,证明格式转换成功,文件存储在虚拟机路径内。
2. 导入火山引擎存储桶
- 将已有镜像导入火山引擎存储桶可参考:导入自定义镜像; 操作完成后,登录火山引擎控制台可以查看到镜像文件已经成功上传。
- 点击此连接授权ECS服务访问TOS服务。 确认已授权ECS官方服务账号可以访问您的对象文件:确认授权;在将文件转换成火山引擎镜像文件之前,单击桶名称—>详情,获取文件的URL。
- 转换镜像文件为火山引擎镜像。 登录镜像控制台,点击“自定义镜像”—>“导入镜像”。
将镜像文件的信息填写完成后点击“确定”,开始导入。
导入完成后,镜像状态显示为“可用”。
至此,自定义镜像导入完成。 如果您有其他问题,欢迎您联系火山引擎技术支持服务。