You need to enable JavaScript to run this app.
导航
云服务器自定义镜像导入
最近更新时间:2023.12.26 10:45:14首次发布时间:2022.01.11 16:03:11

本文将介绍导入自定义镜像。

实验介绍

本期实验练习介绍了如何向火山引擎导入一个自定义镜像文件,并转换为镜像。在开始实验前需要先进行如下准备工作:

  • TOS对象存储中创建存储桶
  • 安装VirtualBox虚拟机
  • 下载CentOS7镜像

关于实验

预计部署时间:60分钟
级别:初级
相关产品:镜像
受众:通用

准备工作

1. 在TOS对象存储控制台创建一个存储桶

alt
alt

2.安装VirtualBox虚拟机

  1. 安装virtualbox虚拟机,官网:https://www.virtualbox.org/
    alt

点击Download下载虚拟机,下载完成后,点击exe应用程序文件根据向导一步一步进行安装。
安装完成后,配置环境变量。
2. 设置virtualbox命令的环境变量。
打开控制面板—>点击环境变量—>选择“Path”,点击“新建”—>输入“C:\Program Files\Oracle\VirtualBox”—>点击完成。
alt
alt
alt

3. 下载CentOS7镜像

下载地址:https://www.centos.org/download/

4. 配置虚拟机并安装CentOS操作系统

  1. 点击新建,创建属于自己的虚拟机,名称和存储路径自定义。类型及版本根据自己的需求进行设置,并点击下一步。

  1. 进行内存分配及CPU设置,内存大小及CPU数均根据自己的需要进行设置,最少不能少于512MB,并点击下一步。

  1. 选择现在创建虚拟硬盘,并点击下一步。

  1. 检查上述设置是否满足需求,满足需求即可点击结束。

  1. 创建完成后,点击新建的虚拟机,点击启动。启动时需要进行启动盘的选择,将提前下载好的镜像文件选择导入。

  1. 进入安装界面后,语言选择中文或根据需要选择其他语言,并点击继续。

  1. 出现所示的界面,点击“安装位置”,在新窗口中点击完成。

  1. 为了让后续虚拟机使用时可以正常联网,点击“网络和主机名”,打开网络,点击完成。显示已连接,点击“开始安装”。

  1. 显示“正在安装”,安装过程中设置用户名及密码。

  1. 安装完成后点击重启,开始使用VirtualBox虚拟机(CentOs7系统)。

5. cloud-init安装配置

  1. 在虚拟机上安装cloud-init.20.3版本。
    wget https://launchpad.net/cloud-init/trunk/20.3/+download/cloud-init-20.3.tar.gz
  2. 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
  1. 替换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
  1. 更换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格式

格式转换命令:

VBoxManage.exe clonemedium --format RAW .\yinsiyu.vdi centos.img

当出现下图所示内容时,证明格式转换成功,文件存储在虚拟机路径内。
alt

2. 导入火山引擎存储桶

  1. 将已有镜像导入火山引擎存储桶可参考:导入自定义镜像
    操作完成后,登录火山引擎控制台可以查看到镜像文件已经成功上传。
    alt
  2. 点击此连接授权ECS服务访问TOS服务。
    确认已授权ECS官方服务账号可以访问您的对象文件。确认授权
  3. 在将文件转换成火山引擎镜像文件之前,单击桶名称—>详情,获取文件的URL。
    alt
  4. 转换镜像文件为火山引擎镜像。
    登录镜像控制台,点击“自定义镜像”—>“导入镜像”。

alt
将镜像文件的信息填写完成后点击“确定”,开始导入。

导入完成后,镜像状态显示为“可用”

至此,自定义镜像导入完成。
如果您有其他问题,欢迎您联系火山引擎技术支持服务