详情页标题前

腾讯云CVM服务器创建自定义镜像

详情页1

操作场景

除了使用腾讯云提供的公共镜像、服务市场镜像外,您还可以创建自定义镜像。创建自定义镜像后,您可以在腾讯云控制台快速创建与该镜像相同配置的腾讯云云服务器实例。说明由于镜像底层使用了云硬盘快照服务:国内地域提供80GB的免费额度,详情请参见 赠送额度在创建自定义镜像时会默认创建关联该镜像的快照,且保留自定义镜像会产生一定的快照费用,详情请参见 快照计费概述若您的腾讯云账户进入欠费状态,为避免您的数据丢失,我们将保留您的自定义镜像及关联的快照,且不会产生新的费用。

注意事项

每个地域暂支持50个自定义镜像。若您的 Linux 实例具备数据盘,但您仅制作系统盘自定义镜像时,请确认 /etc/fstab 不包含数据盘配置,否则会导致使用该镜像创建的实例无法正常启动。制作过程需要持续十分钟或更长时间,具体时间与实例的数据大小有关,请提前做好相关准备,以防影响业务。若您的 Windows 实例需入域且使用域账号,则在创建自定义镜像前,请执行 Sysprep 操作以确保在实例入域后 SID 唯一。详情请参见 通过 Sysprep 实现云服务器入域后 SID 唯一若您使用的是配置25Gbps 网卡的裸金属服务器(即机型的内网带宽值是25Gbps),暂不支持使用控制台及 API 创建自定义镜像。

操作步骤

入口:控制台实例页面入口:控制台镜像页面入口:API入口:客户端基于Packer工具

创建自定义镜像

1. 登录 云服务器控制台,查看对应实例是否需进行关机。注意2018年7月之后基于公共镜像创建的实例(系统盘为云硬盘),支持在线制作镜像(即实例不关机的情况下制作镜像)。除此情况外的实例,请先将实例关机后再进行镜像制作,以确保镜像与当前实例部署环境完全一致。需要,则关机实例不需要,请继续执行后续步骤。2. 在实例的管理页面,根据实际使用的视图模式进行操作:列表视图:选择更多 > 创建自定义镜像。如下图所示:

腾讯云CVM服务器创建自定义镜像

页签视图:选择右上角的更多操作 > 创建自定义镜像。如下图所示:

腾讯云CVM服务器创建自定义镜像

3. 在弹出的创建自定义镜像窗口中,参考以下信息进行配置:镜像名称镜像描述:自定义名称及描述。标签:可按需增加标签,用于资源的分类、搜索和聚合。更多信息请参见 标签当您的实例含数据盘时,默认创建系统盘+数据盘的整机镜像,您可以指定仅创建系统盘镜像。4. 单击创建镜像即可。
您可单击左侧导航栏中的
镜像,在镜像页面中查看镜像的创建进度。

使用自定义镜像创建实例(可选)

待镜像完成创建后,在镜像列表中选择您创建的镜像,单击其所在行右侧的创建实例,即可购买与之前相同镜像的服务器。如下图所示:

腾讯云CVM服务器创建自定义镜像



创建自定义镜像

1. 登录 云服务器控制台,查看对应实例是否需进行关机。注意2018年7月之后基于公共镜像创建的实例(系统盘为云硬盘),支持在线制作镜像(即实例不关机的情况下制作镜像)。除此情况外的实例,请先将实例关机后再进行镜像制作,以确保镜像与当前实例部署环境完全一致。需要,则关机实例不需要,请继续执行后续步骤。2. 单击左侧导航栏中的 镜像,进入镜像页面,在列表上方选择创建镜像

腾讯云CVM服务器创建自定义镜像

3. 在弹出的创建自定义镜像窗口中,参考以下信息进行配置:选择实例:选择该地域下需要创建自定义镜像的实例。镜像名称镜像描述:自定义名称及描述。标签:可按需增加标签,用于资源的分类、搜索和聚合。更多信息请参见 标签当您的实例含数据盘时,默认创建系统盘+数据盘的整机镜像,您可以指定仅创建系统盘镜像。4. 单击创建镜像即可。
之后您可以在
镜像页面中查看镜像的创建进度。

使用自定义镜像创建实例(可选)

待镜像完成创建后,在镜像列表中选择您创建的镜像,单击其所在行右侧的创建实例,即可购买与之前相同镜像的服务器。如下图所示:

腾讯云CVM服务器创建自定义镜像

您可以使用 CreateImage 接口创建自定义镜像。具体内容可以参见 创建镜像 API

背景信息

Packer是一款开源的、轻量级的自动化镜像构建工具。使用JSON格式或 HCL2HashiCorp Configuration Language)的配置文件来定义镜像的构建过程,从而实现快速、可靠的镜像构建和部署。Packer还能为测试和更新镜像带来使用便利,降低运维和管理镜像的时间成本。更多信息参见 Pakcer 官网

前提条件

已创建子用户,并已具备云服务器及云 API 所有权限。创建子用户请参见 新建子用户为子用户授予权限请参见 子用户权限设置,本文为子用户授予 QcloudCVMFullAccessQcloudCVMFinanceAccessQcloudAPIFullAccess 预设策略。为子用户创建 SecretId 与 SecretKey,操作步骤请参见 子账号访问密钥管理。请记录并妥善保管。注意:可以使用主账号 SecretId 与 SecretKey,由于主账号对名下资源有完全控制权限,为了避免因访问密钥泄露带来的安全风险,不建议您使用主账号,请如上创建子账号。

操作步骤

安装 Packer

1、运行以下命令,获取 Packer 安装包。

wget https://releases.hashicorp.com/packer/1.9.4/packer_1.9.4_linux_amd64.zip

2、运行以下命令,解压 Packer 安装包。

unzip packer_1.9.4_linux_amd64.zip

3、运行以下命令,安装 Packer 到环境变量目录/usr/local/bin。

sudo mv packer /usr/local/bin

4、运行以下命令查看 Pakcer 版本,从而验证是否安装成功。

packer -v

说明:安装Packer也可以参见 Packer 官网

定义 Packer模版

使用 Packer 创建自定义镜像,首先,需要定义 HCL 格式或者 JSON 格式的模板文件,其次,您需要在此文件中指定创建自定义镜像的 Builders(生成器)和 Provisioners(配置器),以及创建过程中使用的临时实例信息。1、运行以下命令,创建模板文件。HCL格式JSON格式

vim tencentcloud.pkr.hcl
vim tencentcloud.json

2、按i进入文件编辑模式,根据实际情况,编辑自定义镜像生成器配置器,以及实例信息。HCL格式JSON格式

variable "secret_id" {  type    = string  default = env("TENCENTCLOUD_SECRET_ID")}
variable "secret_key" { type = string default = env("TENCENTCLOUD_SECRET_KEY")}
source "tencentcloud-cvm" "basic" { secret_id = var.secret_id secret_key = var.secret_key region = "ap-guangzhou" zone = "ap-guangzhou-6" instance_type = "SA3.MEDIUM2" disk_type = "CLOUD_PREMIUM" source_image_id = "img-9xqekomx" image_name = "packer-basic" ssh_username = "root" associate_public_ip_address = true run_tags = { "packer" = "packer-test" }}
build { sources = ["source.tencentcloud-cvm.basic"] provisioner "shell" { inline = ["sleep 30", "yum install redis.x86_64 -y"] }}
{    "variables": {      "secret_id": "{{env `TENCENTCLOUD_SECRET_ID`}}",      "secret_key": "{{env `TENCENTCLOUD_SECRET_KEY`}}"    },    "builders": [      {        "type": "tencentcloud-cvm",        "secret_id": "{{user `secret_id`}}",        "secret_key": "{{user `secret_key`}}",        "region":"ap-guangzhou",        "zone": "ap-guangzhou-6",        "instance_type": "SA3.MEDIUM2",        "disk_type": "CLOUD_PREMIUM",        "source_image_id": "img-9xqekomx",        "image_name": "packer-basic",        "ssh_username": "root",        "associate_public_ip_address": true,        "run_tags": {          "packer": "packer-test"        }      }    ],    "provisioners": [{      "type": "shell",      "inline": ["sleep 30", "yum install redis.x86_64 -y"]    }]}

自定义各参数说明如下表所示:

参数 是否为必选 说明
secret_id secret_id推荐设置TENCENTCLOUD_SECRET_ID环境变量。
secret_key secret_key推荐设置TENCENTCLOUD_SECRET_KEY环境变量。
region 地域。创建临时cvm所在地域,以及创建镜像所在的地域。示例值:ap-guangzhou
zone 可用区。创建临时cvm所在可用区。示例值:ap-guangzhou-4
instance_type 实例机型。不同实例机型指定了不同的资源规格。示例值:SA3.MEDIUM2
source_image_id 基础镜像ID,用于创建临时cvm镜像,可从公共镜像列表获取,或者通过接口DescribeImages查询获得。示例值:img-9xqekomx
image_name 指定自定义镜像的名称。有字母、数字和-组成,不能超60个字符。示例值:packer-basic
image_description 镜像描述。不能超60个字符
associate_public_ip_address 是否为临时cvm开启公网IP,默认false。如果通过公网IP连接,请设置值为true
force_poweroff 当关闭临时cvm创建镜像时失败,是否强制关机创制镜像,默认为false
sysprep 是否在创建 Windows 映像期间启用 Sysprep。示例值:false
image_copy_regions 创建图像后将复制到的区域。示例值:[“ap-beijing”]
image_share_accounts 创建映像后将共享的帐户。示例值:[“10002297xxxx”]
skip_region_validation 验证时不检查区域和区域。示例值:false
internet_max_bandwidth_out 启动的最大带宽(以 MB 为单位)。 值可设置在 1 ~ 100 之间。
instance_name 实例名称
disk_type 系统磁盘类型,默认为 CLOUD_PREMIUM。 您可以参见系统盘的信息
disk_size 系统磁盘大小。 值范围(以 GB 为单位):– LOCAL_BASIC: 50
– Other: 50 ~ 1000(>50需要白名单)
data_disks 数据磁盘配置,磁盘详情如下表:数据磁盘详情
vpc_id 创建临时cvm所需vpc_id
vpc_name 私有网络名称,创建cvm前创建vpc的名称,如果不输入给默认值,例如packer-****
cidr_block 若未设置vpc_id,则指定将创建的vpc的cider块。示例值:false
subnet_id 创建临时cvm所需subnet_id
subnet_name 子网名称,创建cvm前创建subnet的名称,如果不输入给默认值,例如packer-****
subnect_cidr_block 若未设置subnet_id,则指定将创建的subnet的cider块。
示例值:false
security_group_id 创建临时cvm所需的安全组id
security_group_name 安全组名称,未设定security_group_id时,创建安全组时所需
user_data 用户数据。
user_data_file 用户数据文件。
host_name 主机名。
run_tags 标签,用于创建临时cvm时指定实例标签,创建镜像不会使用
security_token STS访问令牌,可以通过模板设置,也可以通过导出设置作为环境变量,例如export SECURITY_TOKEN=value
profile 在共享凭据中设置的配置文件名称。它也可以来源于“TENCENTCLOUD_PROFILE”环境变量。如果未设置,将使用使用“tccli configure”创建的默认配置文件,默认为default
shared_credentials_dir 共享凭据的目录。它也可以来源于TENCENTCLOUD_SHARED_CREDENTIALS_DIR环境变量。如果未设置,则默认为~/.tccli

数据磁盘参数说明如下表所示:

参数 是否为必选 说明
disk_type 数据磁盘的类型。 有效选择:CLOUD_BASICCLOUD_PREMIUMCLOUD_SSD
disk_size 数据磁盘的大小。
disk_snapshot_id 数据磁盘快照的 ID。

更多参数请参见 Packer 官网参数3、按 Esc 键,并输入:wq 后按下回车键,保存并退出。

创建自定义镜像

1、配置环境变量 SecretId 与 SecretKey。

export TENCENTCLOUD_SECRET_ID=xxxxexport TENCENTCLOUD_SECRET_KEY=xxxx

2、执行以下命令,开始创建自定义镜像。HCL格式JSON格式

packer build tencentcloud.pkr.hcl
packer build tencentcloud.json

注意:本操作会创建计费资源,请注意释放和清理。如 cvm 实例、公网IP、镜像等(除镜像外,其他资源正常情况会自动清理)。运行结果如下:

tencentcloud-cvm.basic: output will be in this color.==> tencentcloud-cvm.basic: Trying to check image name: packer-basic...    tencentcloud-cvm.basic: Image name: useable==> tencentcloud-cvm.basic: Trying to check source image: img-9xqekomx...    tencentcloud-cvm.basic: Image found: CentOS Stream 9 64bit==> tencentcloud-cvm.basic: Trying to create a new keypair: packer_656c7***...    tencentcloud-cvm.basic: Keypair created: skey-2ekzd***==> tencentcloud-cvm.basic: Trying to create a new vpc...    tencentcloud-cvm.basic: Vpc created: vpc-bm797***==> tencentcloud-cvm.basic: Trying to create a new subnet...    tencentcloud-cvm.basic: Subnet created: subnet-74c4j***==> tencentcloud-cvm.basic: Trying to create a new securitygroup...    tencentcloud-cvm.basic: Securitygroup created: sg-7kf8z***==> tencentcloud-cvm.basic: Trying to create securitygroup polices...    tencentcloud-cvm.basic: Securitygroup polices created==> tencentcloud-cvm.basic: Trying to create a new instance...    tencentcloud-cvm.basic: Waiting for instance ready    tencentcloud-cvm.basic: Instance created: ins-n6dp2***==> tencentcloud-cvm.basic: Using SSH communicator to connect: 1.14.***.***==> tencentcloud-cvm.basic: Waiting for SSH to become available...==> tencentcloud-cvm.basic: Connected to SSH!==> tencentcloud-cvm.basic: Provisioning with shell script: /var/folders/0_/xl3kk_6n79vbnpgj97******0000gn/T/packer-shell1288510462    tencentcloud-cvm.basic: CentOS Stream 9 - AppStream                      42 MB/s |  18 MB     00:00    tencentcloud-cvm.basic: CentOS Stream 9 - BaseOS                         31 MB/s | 7.9 MB     00:00    tencentcloud-cvm.basic: Last metadata expiration check: 0:00:01 ago on Sun 03 Dec 2023 09:18:14 PM CST.    tencentcloud-cvm.basic: Dependencies resolved.    tencentcloud-cvm.basic: ================================================================================    tencentcloud-cvm.basic:  Package        Architecture    Version                Repository          Size    tencentcloud-cvm.basic: ================================================================================    tencentcloud-cvm.basic: Installing:    tencentcloud-cvm.basic:  redis          x86_64          6.2.7-1.el9            appstream          1.3 M    tencentcloud-cvm.basic:    tencentcloud-cvm.basic: Transaction Summary    tencentcloud-cvm.basic: ================================================================================    tencentcloud-cvm.basic: Install  1 Package    tencentcloud-cvm.basic:    tencentcloud-cvm.basic: Total download size: 1.3 M    tencentcloud-cvm.basic: Installed size: 4.7 M    tencentcloud-cvm.basic: Downloading Packages:    tencentcloud-cvm.basic: redis-6.2.7-1.el9.x86_64.rpm                    6.5 MB/s | 1.3 MB     00:00    tencentcloud-cvm.basic: --------------------------------------------------------------------------------    tencentcloud-cvm.basic: Total                                           6.5 MB/s | 1.3 MB     00:00    tencentcloud-cvm.basic: Running transaction check    tencentcloud-cvm.basic: Transaction check succeeded.    tencentcloud-cvm.basic: Running transaction test    tencentcloud-cvm.basic: Transaction test succeeded.    tencentcloud-cvm.basic: Running transaction    tencentcloud-cvm.basic:   Preparing        :                                                        1/1    tencentcloud-cvm.basic:   Running scriptlet: redis-6.2.7-1.el9.x86_64                               1/1    tencentcloud-cvm.basic:   Installing       : redis-6.2.7-1.el9.x86_64                               1/1    tencentcloud-cvm.basic:   Running scriptlet: redis-6.2.7-1.el9.x86_64                               1/1    tencentcloud-cvm.basic:   Verifying        : redis-6.2.7-1.el9.x86_64                               1/1    tencentcloud-cvm.basic:    tencentcloud-cvm.basic: Installed:    tencentcloud-cvm.basic:   redis-6.2.7-1.el9.x86_64    tencentcloud-cvm.basic:    tencentcloud-cvm.basic: Complete!==> tencentcloud-cvm.basic: Trying to detach keypair: skey-2ekzdz0x...    tencentcloud-cvm.basic: Waiting for keypair detached    tencentcloud-cvm.basic: Keypair detached==> tencentcloud-cvm.basic: Trying to create a new image: packer-basic...    tencentcloud-cvm.basic: Waiting for image ready    tencentcloud-cvm.basic: Image created: img-pubkd***==> tencentcloud-cvm.basic: Cleaning up instance...==> tencentcloud-cvm.basic: Cleaning up securitygroup...==> tencentcloud-cvm.basic: Cleaning up subnet...==> tencentcloud-cvm.basic: Cleaning up vpc...==> tencentcloud-cvm.basic: Cleaning up keypair...Build 'tencentcloud-cvm.basic' finished after 3 minutes 38 seconds.
==> Wait completed after 3 minutes 38 seconds
==> Builds finished. The artifacts of successful builds are:--> tencentcloud-cvm.basic: Tencentcloud images(ap-guangzhou: img-pubkd***) were created.

3、查看已创建的自定义镜像3.1 登录 云服务器控制台3.2 在左侧导航栏中,单击 镜像,进入镜像管理页面。3.3 单击左上角的地域,即可在下拉框中查看所在地域的自定义镜像

腾讯云CVM服务器创建自定义镜像



相关文档

Packer tencentcloud

最佳实践

查看各地域自定义镜像数量

在镜像资源较多、跨地域部署等场景下,一键查询各地域镜像数量可帮助您更高效地管理镜像资源。1. 登录 云服务器控制台2. 在左侧导航栏中,单击 镜像,进入镜像管理页面。3. 单击左上角的地域,即可在下拉框中查看各地域的自定义镜像数量。

腾讯云CVM服务器创建自定义镜像

4、切换至共享镜像管理页面,单击左上角的地域,即可在下拉框中查看各地域的共享镜像数量。

数据盘数据迁移

如果您需要在启动新实例时同时保留原有实例数据盘上的数据,您可以先对数据盘做 快照,并在启动新实例时使用该数据盘快照创建新的云硬盘数据盘。
更多相关信息,请参见
快照创建云硬盘

腾讯云云服务器官网1折活动进行中,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/138513.html

(0)
上一篇 2023年12月9日 上午1:01
下一篇 2023年12月9日 上午1:01
详情页2

相关推荐

  • 腾讯云CVM服务器制作 Linux 镜像

    操作场景 本文档指导您制作本地或其他平台的 Linux 服务器系统盘镜像。 操作步骤 准备工作 制作系统盘镜像导出时,需要进行以下检查:说明如果您是通过数据盘镜像导出,则可以跳过此操作。 检查 OS 分区和启动方式 1. 执行以下命令,检查 OS 分区是否为 GPT 分区。 sudo parted -l /dev/sda | grep ‘Partition …

    2023年12月9日
  • 阿里云ECS云服务器删除自定义镜像-云淘科技

    如果您不再需要某个自定义镜像,可以将其删除。 注意事项 删除自定义镜像时,请您注意以下事项。 类型 注意事项 删除自定义镜像 以下几种情况不允许删除镜像: 该镜像正在导入。您可以在任务管理界面取消导入任务。更多信息,请参见导入自定义镜像。 该镜像正在导出。您可以在任务管理界面取消导出任务。更多信息,请参见导出自定义镜像。 镜像删除后: 不能再使用该镜像创建实…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云ECS云服务器Linux自定义镜像如何适配NVMe系统盘?-云淘科技

    部分实例规格族支持基于NVMe协议挂载云盘(例如ecs.g7se、ecs.c7se、ecs.r7se等),如果您需要在该类实例规格族上使用自定义镜像启动ECS实例,且需要保证实例稳定运行,则您在创建自定义镜像前,需要在对应的操作系统中进行NVMe相关的配置操作。 背景信息 支持基于NVMe协议挂载云盘的实例规格族信息,请参见实例规格族。 在您完成NVMe相关…

    2023年12月9日
  • 阿里云ECS云服务器安装Docker并使用(Linux)-云淘科技

    如果您需要在云服务ECS上安装Docker,可使用阿里云提供的Docker镜像源快速部署。本文主要介绍如何基于Alibaba Cloud Linux和CentOS镜像安装Docker、使用Docker制作镜像和部署docker-compose,以便更高效地构建、部署和管理应用程序。 准备资源 已创建一台基础ECS实例,并满足以下配置。如果您还未创建,请参见自…

    阿里云服务器 2023年12月9日
  • 阿里云ECS云服务器计费FAQ-云淘科技

    本章节汇总了ECS计费的常见问题。 账号问题 为什么我不能购买按量付费实例? 没有通过支付宝实名认证能不能购买按量付费ECS实例? 按量付费实例怎么开具发票? 如果我的账号余额不足,系统会提醒我吗?什么时候提示? 账号余额不足时,按量付费实例上的数据会受影响吗? 是否支持5天内无理由退款? 是否支持百倍赔偿? 购买ECS实例后第一时间提出了退款,为什么还是扣…

    阿里云服务器 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。