tencent cloud

Cloud Virtual Machine

Criar imagem personalizada

Baixar
Modo Foco
Tamanho da Fonte
Última atualização: 2026-06-15 15:20:01

Cenário de operação

Além de usar as imagens públicas fornecidas pela Tencent Cloud, você também pode criar imagens personalizadas. Após criar uma imagem personalizada, você pode criar rapidamente instâncias do CVM da Tencent Cloud com a mesma configuração dessa imagem por meio do console da Tencent Cloud.
Observação:
Devido ao fato de que a imagem utiliza subjacente o serviço de snapshot do disco em nuvem:
Ao criar uma imagem personalizada, um snapshot associado a essa imagem será criado por padrão, e a retenção da imagem personalizada gerará certos custos de snapshot. Para detalhes, consulte Visão geral de cobrança de snapshots.

Precauções

Cada região suporta temporariamente 500 imagens personalizadas. Em condições normais, o tamanho da capacidade da imagem personalizada criada é consistente com o tamanho do disco da instância.
Se a sua instância Linux tiver um disco de dados, mas você criar apenas uma imagem personalizada do disco do sistema, verifique se o /etc/fstab não contém configurações do disco de dados, caso contrário, a instância criada com essa imagem não será iniciada corretamente.
O processo de criação pode levar dez minutos ou mais, dependendo do tamanho dos dados da instância. Certifique-se de estar preparado antecipadamente para evitar impactos nos serviços.
Se a sua instância Windows precisar ingressar em um domínio e usar uma conta de domínio, antes de criar uma imagem personalizada, execute a operação Sysprep para garantir que o SID seja exclusivo após a instância ingressar no domínio. Para detalhes, consulte Como garantir um SID exclusivo após a instância ingressar no domínio usando Sysprep.
Se você estiver usando um servidor bare metal com placa de rede de 25Gbps (ou seja, a largura de banda interna do modelo é de 25Gbps), atualmente não é suportado criar imagens personalizadas usando o console ou a API.

Etapas de operação

Usar o console da instância para criar
Criar usando o console de imagens
Usar API para criar
Cliente Linux baseado na ferramenta Packer
O cliente Windows baseado na ferramenta Packer

Instância desligada (opcional)

1. Acesse o console de servidores em nuvem e verifique se a instância correspondente precisa ser desligada.
Atenção:
Instâncias criadas com base em imagens públicas após julho de 2018 (com disco do sistema sendo disco em nuvem) suportam a criação de imagens online (ou seja, criar imagens sem desligar a instância). Para instâncias fora desse caso, desligue a instância primeiro antes de criar a imagem, a fim de garantir que a imagem seja completamente consistente com o ambiente de implantação da instância atual.
Se necessário, prossiga para a próxima etapa.
Não, execute as etapas de criação de imagem personalizada.
2. Na página de gerenciamento da instância, opere de acordo com o modo de visualização utilizado:
Modo de exibição de lista: Selecione Mais > Status da instância > Desligar à direita da linha da instância. Conforme mostrado na figura abaixo:

Aba: Selecione Desligar na página de detalhes da instância. Conforme mostrado na figura abaixo:


criação de imagem personalizada

1. Na página de gerenciamento da instância, opere de acordo com o modo de visualização utilizado:
Modo de exibição de lista: Selecione Mais > Imagem/Sistema operacional > Criar imagem personalizada. Conforme mostrado na figura abaixo:

Aba: Selecione Mais ações > Imagem/Sistema operacional > Criar imagem personalizada no canto superior direito. Conforme mostrado na figura abaixo:

2. Na janela pop-up de criação de imagem personalizada, consulte as informações a seguir para configurar:
Nome da imagem e Descrição da imagem: Nome e descrição personalizados.
Etiquetas: Adicione etiquetas conforme necessário para classificação, pesquisa e agregação de recursos. Consulte Etiquetas para mais informações.
Observação:
Se precisar criar uma imagem personalizada que inclua o disco do sistema e o disco de dados, envie um ticket para solicitar a ativação do recurso.
3. Clique em criar imagem para.
Você pode clicar em Imagem na barra de navegação esquerda para verificar o progresso da criação da imagem na página de imagens.

Criar instância usando imagem personalizada (opcional)

Após a conclusão da criação da imagem, selecione a imagem criada na lista de imagens e clique em criar instância no lado direito da linha correspondente para adquirir um servidor com a mesma imagem. Conforme mostrado na figura abaixo:


Criar imagem personalizada

1. Acesse o console de servidores em nuvem e verifique se a instância correspondente precisa ser desligada.
Atenção:
Instâncias criadas após julho de 2018 (com disco do sistema sendo disco em nuvem) suportam a criação de imagens online (ou seja, criar imagens sem desligar a instância). Para instâncias fora desse caso, desligue a instância primeiro antes de criar a imagem, a fim de garantir que a imagem seja completamente consistente com o ambiente de implantação da instância atual.
Se necessário, desligue a instância.
Não é necessário, prossiga com as etapas subsequentes.
2. Clique em Imagem na barra de navegação esquerda, acesse a página de imagens e selecione Criar imagem personalizada acima da lista.

3. Na janela pop-up de criação de imagem personalizada, consulte as informações a seguir para configurar:
Selecionar instância: Selecione a instância para a qual deseja criar uma imagem personalizada nesta região.
Nome da imagem e Descrição da imagem: Nome e descrição personalizados.
Etiquetas: Adicione etiquetas conforme necessário para classificação, pesquisa e agregação de recursos. Consulte Etiquetas para mais informações.
Quando sua instância contém discos de dados, por padrão é criada uma imagem completa da máquina incluindo disco do sistema + discos de dados. Você pode optar por criar apenas a imagem do disco do sistema.
4. Clique em criar imagem para.
Depois, você pode verificar o progresso da criação da imagem na página de Imagem.

Usar imagem personalizada para criar instância (opcional)

Após a conclusão da criação da imagem, selecione a imagem criada na lista de imagens e clique em criar instância no lado direito da linha correspondente para adquirir um servidor com a mesma imagem. Conforme mostrado na figura abaixo:

Você pode usar a interface CreateImage para criar imagens personalizadas. Para detalhes, consulte criar imagem API.

Informações de Fundo

Packer é uma ferramenta de automação de construção de imagens de código aberto e leve. Use arquivos de configuração em formato JSON ou HCL2 (HashiCorp Configuration Language) para definir o processo de construção de imagens, permitindo criação e implantação rápidas e confiáveis. O Packer também facilita testes e atualizações de imagens, reduzindo custos de tempo em O&M e gerenciamento. Consulte o site oficial do Packer para mais informações.

Pré-requisitos

A subconta foi criada e possui todas as permissões para servidores em nuvem e APIs em nuvem.
Para criar um subusuário, consulte criar subusuário.
Para conceder permissões a subusuários, consulte configuração de permissões de subusuário. Este documento concede as políticas predefinidas QcloudCVMFullAccess, QcloudCVMFinanceAccess e QcloudAPIFullAccess.
Para criar SecretId e SecretKey para o subusuário, siga as etapas em gestão de chaves de acesso de subconta. Registre e guarde adequadamente.
Observação:
Você pode usar o SecretId e SecretKey da conta principal. No entanto, como a conta principal tem controle total sobre os recursos, para evitar riscos de segurança causados por vazamento de chaves de acesso, não é recomendado usar a conta principal. Crie uma subconta.

Etapas de operação

Instalar o Packer

1. Execute o seguinte comando para obter o pacote de instalação do Packer.
wget https://releases.hashicorp.com/packer/1.9.4/packer_1.9.4_linux_amd64.zip
2. Execute o seguinte comando para descompactar o pacote de instalação do Packer.
unzip packer_1.9.4_linux_amd64.zip
3. Execute o seguinte comando para instalar o Packer no diretório de variáveis de ambiente /usr/local/bin.
sudo mv packer /usr/local/bin
4. Execute o seguinte comando para verificar a versão do Packer e confirmar se a instalação foi bem-sucedida.
packer -v
Observação:
A instalação do Packer também pode ser consultada em site oficial do Packer.

Definir modelo do Packer

Para criar imagens personalizadas usando o Packer, primeiro é necessário definir um arquivo de modelo em formato HCL ou JSON. Em seguida, você deve especificar os Builders (construtores) e Provisioners (provisionadores) para criar a imagem personalizada nesse arquivo, juntamente com as informações da instância temporária usadas no processo de criação.
1. Execute o seguinte comando para criar o arquivo de modelo.
formato HCL
JSON formato
vim tencentcloud.pkr.hcl
vim tencentcloud.json
2. Pressione i para entrar no modo de edição de arquivo e edite o configurador do gerador de imagens personalizadas, bem como as informações da instância, conforme a situação real.
formato HCL
formato 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"]
}]
}
A descrição de cada parâmetro personalizado é mostrada na tabela abaixo:
parâmetro
Obrigatório?
Descrição
secret_id
Sim
É recomendado configurar a variável de ambiente TENCENTCLOUD_SECRET_ID para o secret_id.
secret_key
sim
É recomendado configurar a variável de ambiente TENCENTCLOUD_SECRET_KEY para o secret_key.
region
sim
Região. A região onde o CVM temporário é criado e a região onde a imagem é criada.
Valor de exemplo: ap-guangzhou
zone
Sim
Zona de disponibilidade. A zona de disponibilidade onde o CVM temporário é criado.
Valor de exemplo: ap-guangzhou-6
instance_type
sim
Modelo de instância. Diferentes modelos de instância especificam diferentes especificações de recursos.
Valor de exemplo: SA3.MEDIUM2
source_image_id
sim
O ID da imagem base, usado para criar a imagem do CVM temporário, pode ser obtido na lista de imagens públicas ou consultado por meio da interface DescribeImages.
Valor de exemplo: img-9xqekomx
image_name
sim
Especifique o nome da imagem personalizada. Deve consistir em letras, números e hífens, não excedendo 60 caracteres.
Valor de exemplo: packer-basic
image_description
Não
Descrição da imagem. Não pode exceder 60 caracteres.
associate_public_ip_address
Não
Se deve ativar o IP público para o CVM temporário, o padrão é false. Se conectar via IP público, defina o valor como true
force_poweroff
Não
Se deve forçar o desligamento quando falha ao criar a imagem durante o desligamento do CVM temporário, o padrão é false.
sysprep
Não
Se deve habilitar o Sysprep durante a criação da imagem do Windows.
Valor de exemplo: false
image_copy_regions
Não
A região para a qual a imagem será copiada após a criação.
Valor de exemplo: ["ap-beijing"]
image_share_accounts
Não
As contas com as quais a imagem será compartilhada após a criação.
Valor de exemplo: ["10002297xxxx"]
skip_region_validation
Não
Não verifica a região durante a validação.
Valor de exemplo: false
internet_max_bandwidth_out
Não
A largura de banda máxima durante a inicialização (em Mbps). O valor pode ser definido entre 1 e 100.
instance_name
Não
Nome da instância.
disk_type
Não
O tipo de disco do sistema, por padrão CLOUD_PREMIUM. Consulte informações do disco do sistema.
disk_size
Não
Tamanho do disco do sistema. Intervalo de valores (em GB):
LOCAL_BASIC: 50
Other: 50 ~ 1000 (>50 requer lista de permissões)
data_disks
Não
Configuração do disco de dados. Para detalhes do disco, consulte Detalhes do disco de dados.
vpc_id
Não
O vpc_id necessário para criar um CVM temporário.
vpc_name
Não
O nome da rede privada, o nome da vpc criada antes de criar o CVM. Se não for inserido, será atribuído um valor padrão, como "packer-****".
cidr_block
Não
Se não for definido o vpc_id, especificará o bloco CIDR do VPC a ser criado.
Valor de exemplo: false
subnet_id
Não
O subnet_id necessário para criar um CVM temporário.
subnet_name
Não
O nome da sub-rede, o nome do Subnet criado antes de criar o CVM. Se não for inserido, será atribuído um valor padrão, como "packer-****".
subnet_cidr_block
Não
Se não for definido o subnet_id, especificará o bloco CIDR do Subnet a ser criado.
Valor de exemplo: false
security_group_id
Não
O ID do grupo de segurança necessário para criar um CVM temporário.
security_group_name
Não
O nome do grupo de segurança, necessário ao criar um grupo de segurança quando o security_group_id não estiver definido.
user_data
Não
Dados do usuário.
user_data_file
Não
Arquivo de dados do usuário.
host_name
Não
Nome do host.
run_tags
Não
Rótulo, usado para especificar o rótulo da instância ao criar um CVM temporário, não será usado na criação da imagem.
Detalhes do disco de dados
:
Parâmetro
Se é obrigatório
Descrição
disk_type
Sim
O tipo de disco de dados. Opções válidas: CLOUD_BASIC, CLOUD_PREMIUM e CLOUD_SSD.
disk_size
sim
Tamanho do disco de dados.
disk_snapshot_id
Sim
ID do snapshot do disco de dados.
Para mais parâmetros, consulte os parâmetros do site oficial do Packer.
3. Pressione a tecla Esc, e insira: wq depois pressione a tecla Enter para salvar e sair.

Criar imagens personalizadas

1. Configurar as variáveis de ambiente SecretId e SecretKey.
export TENCENTCLOUD_SECRET_ID=xxxx
export TENCENTCLOUD_SECRET_KEY=xxxx
2. Execute o seguinte comando para começar a criar a imagem personalizada.
Formato HCL
Formato JSON
packer build tencentcloud.pkr.hcl
packer build tencentcloud.json
Atenção:
Esta operação criará recursos faturaveis, atenção para liberação e limpeza. Como instâncias CVM, IP público, imagem, etc. (exceto imagens, outros recursos serão limpos automaticamente em condições normais).
O resultado da execução é o seguinte:
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. Ver as imagens personalizadas criadas.
3.2 Na barra de navegação esquerda, clique em Imagem para acessar a página de gerenciamento de imagens.
3.3 Clique na região no canto superior esquerdo para visualizar a imagem personalizada da região selecionada na caixa suspensa.


Cenário de operação

Aqui apresentamos como você pode usar a ferramenta Packer em um cliente Windows para criar imagens personalizadas via conexão WinRM. O Packer, uma ferramenta de automação de construção de imagens da HashiCorp, ajuda a criar imagens personalizadas de servidor em nuvem de forma rápida e consistente.
Atenção:
O Windows depende do WinRM para estabelecer conexões de rede e distribuir comandos através dele. Como as imagens públicas do Windows não têm o WinRM totalmente ativado por padrão, é necessário usar o UserData para habilitá-lo. O código de negócios que originalmente era colocado no UserData ao chamar a interface RunInstances agora precisa ser movido para a seção de provisioners para execução.
O Packer não aguarda a conclusão da execução do código UserData antes de executar o módulo de provisioners ao criar máquinas e empacotar imagens. Além disso, o Packer depende fortemente do WinRM em sistemas Windows, e as imagens públicas do sysprep não têm o WinRM totalmente habilitado.
A partir da versão 1.9.0 do Packer, os Plugins são separados do programa principal e precisam ser instalados separadamente, caso contrário, será reportado builder unknown, enquanto versões anteriores do Packer (como a 1.8.7) vêm com os Plugins incluídos.

Pré-requisitos

A subconta foi criada e possui todas as permissões para servidores em nuvem e APIs em nuvem.
Para criar um subusuário, consulte criar subusuário.
Para conceder permissões a subusuários, consulte configuração de permissões de subusuário. Aqui são concedidas as políticas predefinidas QcloudCVMFullAccess, QcloudCVMFinanceAccess e QcloudAPIFullAccess.
O SecretId e o SecretKey para o subusuário foram criados. Para as etapas de operação, consulte gestão de chaves de acesso de subconta. Registre e guarde adequadamente.
Observação:
Você pode usar o SecretId e SecretKey da conta principal. No entanto, como a conta principal tem controle total sobre os recursos, para evitar riscos de segurança causados por vazamento de chaves de acesso, não é recomendado usar a conta principal. Crie uma subconta.
Garanta a conectividade de rede entre o cliente (o host que executa o comando packer.exe) e a máquina de empacotamento do Packer. Recomenda-se configurar a atribuição de IP público no config.json ("associate_public_ip_address": true), ou que o cliente seja outro servidor em nuvem na mesma VPC especificada pelo config.json, para garantir a conectividade de rede interna.

Etapas de operação

Passo 1: instalar o Packer

1. Baixe o Packer.
2. Descompacte o pacote de instalação do Packer. Aqui, tomando a versão 1.14.1 como exemplo, o arquivo descompactado contém o packer.exe. Use a linha de comando do CMD para acessar o diretório descompactado e execute o seguinte comando para concluir a inicialização do ambiente do Packer.
packer.exe plugins install github.com/hashicorp/tencentcloud
Observação:
A inicialização do ambiente do Packer requer a obtenção do Packer Plugin do GitHub. Instâncias na China Continental podem ter acesso lento ao GitHub; por favor, aguarde pacientemente. Se encontrar erros, tente novamente ou utilize hosts de outros países e regiões.

Passo 2: Definir o modelo do Packer

Para criar imagens personalizadas usando o Packer, primeiro é necessário definir um arquivo de modelo em formato JSON ou HCL. No arquivo de modelo, você precisa especificar os Builders (construtores) e Provisioners (provisionadores) para criar a imagem personalizada, bem como as informações da instância temporária usadas durante o processo de criação.
O conteúdo completo do arquivo de configuração do Windows Packer da Tencent Cloud config.json é o seguinte:
{
"builders": [
{
"type": "tencentcloud-cvm",
"secret_id": "seu secret_id",
"secret_key": "seu secret_key",
"region": "ap-shanghai",
"zone": "ap-shanghai-5",
"instance_type": "S5.MEDIUM4",
"source_image_id": "img-m07ny34j",
"disk_size": 40,
"disk_type": "CLOUD_PREMIUM",
"vpc_id": "vpc-9yabaw4m",
"subnet_id": "subnet-ih08bvf9",
"communicator": "winrm",
"winrm_port": 5985,
"winrm_username": "Administrator",
"winrm_password": "senha complexa composta de letras maiúsculas, letras minúsculas e números",
"image_name": "test_Packer1",
"security_group_id": "sg-c65mz0li",
"packer_debug": true,
"associate_public_ip_address": true,
"run_tags": {
"good": "luck"
},
"user_data_file": "winrm_enable_userdata.ps1"
}
],
"provisioners": [
{
"type": "powershell",
"inline": [
"mkdir C:\\\\test -force;wget http://windows-1251783334.cos.ap-shanghai.myqcloud.com/installChrome.ps1 -Outfile c:\\\\test\\\\packer.ps1;Start-Process powershell.exe -ArgumentList '-NoProfile -File c:\\\\test\\\\packer.ps1' -Wait;"
]
}
]
}
Você precisa modificar o configurador do gerador de imagens personalizadas e as informações da instância de acordo com a situação real. As descrições de cada parâmetro são as seguintes:
Parâmetros
Obrigatório?
Descrição
secret_id
Sim
Recomenda-se configurar a variável de ambiente TENCENTCLOUD_SECRET_ID.
secret_key
sim
Recomenda-se configurar a variável de ambiente TENCENTCLOUD_SECRET_KEY.
region
sim
Região. Criar o CVM temporário na região e criar a imagem na região.
Valor de exemplo: ap-guangzhou
zone
sim
Zona de disponibilidade. A zona de disponibilidade onde o CVM temporário é criado.
Valor de exemplo: ap-guangzhou-4
instance_type
sim
Modelo de instância. Diferentes modelos de instância especificam diferentes especificações de recursos.
Valor de exemplo: S5.MEDIUM4
source_image_id
sim
O ID da imagem base, usado para criar a imagem do CVM temporário, pode ser obtido na lista de imagens públicas ou consultado por meio da interface DescribeImages.
Valor de exemplo: img-m07ny34j
image_name
Sim
O nome da imagem personalizada. Deve consistir em letras, números e -, não podendo exceder 60 caracteres.
Valor de exemplo: test_Packer1.
communicator
sim
Especifica o método que o Packer usa para se conectar à máquina de destino, definido como winrm, estabelecendo comunicação com a máquina por meio de conexão WinRM.
winrm_port
sim
O número da porta para conexão WinRM, fixado como 5985.
winrm_username
Sim
O nome de usuário usado para conectar ao WinRM precisa permanecer consistente com o nome de usuário em winrm_enable_userdata.ps1.
winrm_password
sim
A senha usada para conectar ao WinRM precisa permanecer consistente com a senha em winrm_enable_userdata.ps1.
associate_public_ip_address
Não
Se deve ativar o IP público para o CVM temporário, o padrão é false. Se conectar via IP público, defina como true.
disk_type
Não
O tipo de disco do sistema, por padrão CLOUD_PREMIUM. Para mais informações, consulte SystemDisk.
disk_size
Não
O tamanho do disco do sistema, em GB, por exemplo 40GB, insira 40.
vpc_id
Não
O VPC ID necessário para criar um CVM temporário.
subnet_id
Não
O ID da sub-rede necessário para criar um CVM temporário.
security_group_id
Não
O ID do grupo de segurança necessário para criar um CVM temporário.
user_data_file
Não
Caminho do arquivo de dados do usuário.
inline
Não
A lógica de negócios necessária antes de criar a imagem. Por exemplo, instalar automaticamente o navegador Chrome quando a rede pública estiver disponível.
Para mais parâmetros, consulte os parâmetros do site oficial do Packer.

Etapa 3: Criar uma imagem personalizada

1. Coloque config.json, winrm_enable_userdata.ps1 e o programa principal do Packer packer.exe no mesmo diretório.
2. Após mudar para o diretório correspondente, execute os seguintes comandos:
packer.exe build config.json
Observação:
Durante a execução do packer.exe, o console do servidor em nuvem pode visualizar a máquina de empacotamento criada. Por favor, não opere este servidor. Independentemente de a criação da imagem ser bem-sucedida ou falhar, este servidor será automaticamente recuperado no final. Se houver alguma anormalidade na recuperação, entre em contato com o atendimento ao cliente online para processamento.
3. Após a execução do comando, se a saída contiver informações semelhantes às seguintes, isso indica que a imagem foi criada com sucesso:
==> tencentcloud-cvm: Waiting for image creating...
==> tencentcloud-cvm: Image ID: img-xxxxxx
Build 'tencentcloud-cvm' finished after ...
Você também pode ir para a página de imagem personalizada do console do servidor em nuvem para visualizar as imagens criadas.

Perguntas frequentes

Ao criar a imagem, indica Some builds didn't complete successfully and had errors: tencentcloud-cvm: Image name xxxx exists

Após usar o config.json para criar uma imagem com sucesso, é necessário atualizar o valor de image_name ao reutilizá-lo.

Durante a criação da imagem, exibe continuamente Waiting for WinRM become available...

Por favor, confirme que a senha em winrm_password no arquivo config.json é consistente com a senha em winrm_enable_userdata.ps1. A localização da configuração da senha em winrm_enable_userdata.ps1 é a seguinte:


Ao criar a imagem, indica Script exited with non-zero exit status: 16001.

O acesso à rede pelo Packer pode ser afetado por medidas de segurança de software, causando tempo limite de empacotamento. Recomenda-se que os clientes utilizem servidores em nuvem em redes independentes sempre que possível.

Operações relacionadas

Verificar a quantidade de imagens personalizadas em cada região

Em cenários como recursos de imagem numerosos e implantações entre regiões, a consulta com um clique da quantidade de imagens em cada região pode ajudá-lo a gerenciar recursos de imagem com mais eficiência.
2. Na barra de navegação esquerda, clique em Imagem para acessar a página de gerenciamento de imagens.
3. Clique na região no canto superior esquerdo para visualizar a quantidade de imagem personalizada de cada região na caixa suspensa.

4. Mude para a página de gerenciamento de imagens compartilhadas, clique na região no canto superior esquerdo para visualizar a quantidade de imagem compartilhada de cada região na caixa suspensa.

Migração de dados do disco de dados

Se você precisar preservar os dados no disco de dados da instância original ao iniciar uma nova instância, você pode primeiro criar um snapshot do disco de dados e usar esse snapshot para criar um novo disco de dados em nuvem ao iniciar a nova instância.
Para mais informações, consulte Criação de disco em nuvem a partir de snapshot.


Ajuda e Suporte

Esta página foi útil?

comentários