最近更新时间:2024-08-13 17:31:58
用户可以基于正常运行的实例,创建自定义镜像。实例可以为“运行中”或“已关闭”状态。
您可以通过已有实例或快照创建自定义镜像,以便快速复制系统环境,免除重复配置。
每个地区默认支持500个自定义镜像,可在金山控制台配额列表查看资源配额。若有需求调整配额,具体操作请参见创建配额调整申请。
为确保自定义镜像可以正常使用,在制作镜像前需要完成以下工作:
如果要制作Linux镜像,将/etc/fstab
配置文件中用户添加的挂载信息删除或屏蔽,仅保留系统自带的挂载信息。
如果要制作Windows镜像,为Windows防火墙开放DHCP协议端口,即UDP 67和UDP 68。操作命令如下:
netsh advfirewall firewall set portopening udp 67 enable
netsh advfirewall firewall set portopening udp 68 enable
或者
netsh firewall set portopening udp 67 enable
netsh firewall set portopening udp 68 enable
一、基于实例制作自定义镜像
登录云服务器KEC控制台,默认进入云服务器 > 实例页面。
在目标云服务器对应的“操作”列中,选择更多 > 制作镜像。
制作镜像可以根据业务形态自主选择镜像类型以及是否添加数据盘;其中镜像类型支持选择普通镜像及极速可用镜像,区别在于存储位置不同:
普通镜像:镜像存储在对象存储KS3,本地盘及云硬盘均支持创建普通镜像;
极速可用镜像:镜像存储在EBS集群,支持快速开机,仅支持系统盘为云盘机型创建;
当选择的是本地盘机型进行制作镜像时,如果选择增加了本地数据盘,则支持勾选支持快速开盘选项。勾选快速开盘后,使用该镜像开盘效率将有效提升。该选项会对该磁盘进行一次全量备份,该磁盘关联的快照链容量将会增加。如下图所示。
输入镜像名称,单击确认。
制作完成后,即可以在云服务器 > 镜像页面查看并管理镜像。
可以使用自定义镜像创建实例或重装系统,其中仅系统盘为SSD3.0的实例可使用对应可用区的极速可用镜像创建实例或重装系统。
二、基于快照创建自定义镜像
登录云服务器KEC控制台,进入云服务器 > 快照列表页面。
在目标快照对应的“操作”列中,选择更多 > 制作镜像。制作镜像可以根据业务形态自主选择是否添加数据盘。
若您选择的系统盘快照类型为极速可用快照,则数据盘快照类型仅支持选择极速可用快照,创建出来的自定义镜像类型为极速可用镜像;若您选择的系统盘快照类型为普通快照,则数据盘快照类型仅支持选择普通快照,创建出来的自定义镜像类型为普通镜像。
输入镜像名称,单击确定。
制作完成后,即可以在云服务器 > 镜像页面查看并管理镜像。
三、使用Packer创建自定义镜像
Packer是一款轻量级的镜像定义工具,能够运行在常用的主流操作系统(如Windows、Linux和macOS)上。参见本文安装并使用Packer,轻松创建自定义镜像。
1.安装Packer
链接并登录到Linux服务器。登录Linux实例服务器,请参见连接实例
克隆存储库到 $GOPATH/src/github.com/kingsoftcloud/packer-plugin-ksyun$ mkdir -p $GOPATH/src/github.com/kingsoftcloud;
$ cd $GOPATH/src/github.com/kingsoftcloud
$ git clone git@github.com:kingsoftcloud/packer-plugin-ksyun.git
构建并链接到Packer$ cd $GOPATH/src/github.com/kingsoftcloud/packer-plugin-ksyun
$ make build
$ln -s $GOPATH/bin/packer-plugin-ksyun ~/.packer.d/plugins/packer-plugin-ksyun
2.定义Packer模板
使用Packer创建自定义镜像时,需要创建一个JSON格式的模板文件。在该模板文件中,您需要指定创建自定义镜像的生成器和配置器。
这是一个示例模板,您也可以在example /目录中找到它
{
"variables": {
"access_key": "{{ env `KSYUN_ACCESS_KEY` }}",
"secret_key": "{{ env `KSYUN_SECRET_KEY` }}"
},
"builders": [{
"type":"ksyun-kec",
"access_key":"{{user `access_key`}}",
"secret_key":"{{user `secret_key`}}",
"region":"cn-shanghai-2",
"image_name":"packer_test",
"source_image_id":"IMG-dd1f8324-1f27-46e0-ad6b-b41d8c8ff025",
"instance_type":"N3.1B",
"ssh_username":"root",
"associate_public_ip_address": true
}],
"provisioners": [{
"type": "shell",
"inline": [
"sleep 30",
"yum install mysql -y"
]
}]
}
您需要自定义的参数数值如下表所示。
参数 | 描述 |
---|---|
access_key | 您的AccessKeyID。 |
secret_key | 您的AccessKeySecret。 |
region | 创建自定义镜像时使用临时资源的地域。 |
image_name | 自定义镜像的名称。 |
source_image_id | 基础镜像的ID |
instance_type | 创建自定义镜像时生成的临时实例的类型。 |
provisioners | 创建自定义镜像时使用的Packer配置器类型。 |
3.使用Packer创建自定义镜像
导入您的AccessKeyIDexport KSYUN_ACCESS_KEY=<您的AccessKeyID>
导入您的AccessKeySecretexport KSYUN_SECRET_KEY=<您的AccessKeySecret>
创建自定义镜像packer build example/ksyun.json
纯净模式
鼠标选中内容,快速反馈问题