/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.






QcloudCVMFullAccess, QcloudCVMFinanceAccess e QcloudAPIFullAccess.wget https://releases.hashicorp.com/packer/1.9.4/packer_1.9.4_linux_amd64.zip
unzip packer_1.9.4_linux_amd64.zip
/usr/local/bin.sudo mv packer /usr/local/bin
packer -v
vim tencentcloud.pkr.hcl
vim tencentcloud.json
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.variable "secret_id" {type = stringdefault = env("TENCENTCLOUD_SECRET_ID")}variable "secret_key" {type = stringdefault = env("TENCENTCLOUD_SECRET_KEY")}source "tencentcloud-cvm" "basic" {secret_id = var.secret_idsecret_key = var.secret_keyregion = "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 = truerun_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"]}]}
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 | |
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 | |
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. |
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. |
export TENCENTCLOUD_SECRET_ID=xxxxexport TENCENTCLOUD_SECRET_KEY=xxxx
packer build tencentcloud.pkr.hcl
packer build tencentcloud.json
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 readytencentcloud-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-shell1288510462tencentcloud-cvm.basic: CentOS Stream 9 - AppStream 42 MB/s | 18 MB 00:00tencentcloud-cvm.basic: CentOS Stream 9 - BaseOS 31 MB/s | 7.9 MB 00:00tencentcloud-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 Sizetencentcloud-cvm.basic: ================================================================================tencentcloud-cvm.basic: Installing:tencentcloud-cvm.basic: redis x86_64 6.2.7-1.el9 appstream 1.3 Mtencentcloud-cvm.basic:tencentcloud-cvm.basic: Transaction Summarytencentcloud-cvm.basic: ================================================================================tencentcloud-cvm.basic: Install 1 Packagetencentcloud-cvm.basic:tencentcloud-cvm.basic: Total download size: 1.3 Mtencentcloud-cvm.basic: Installed size: 4.7 Mtencentcloud-cvm.basic: Downloading Packages:tencentcloud-cvm.basic: redis-6.2.7-1.el9.x86_64.rpm 6.5 MB/s | 1.3 MB 00:00tencentcloud-cvm.basic: --------------------------------------------------------------------------------tencentcloud-cvm.basic: Total 6.5 MB/s | 1.3 MB 00:00tencentcloud-cvm.basic: Running transaction checktencentcloud-cvm.basic: Transaction check succeeded.tencentcloud-cvm.basic: Running transaction testtencentcloud-cvm.basic: Transaction test succeeded.tencentcloud-cvm.basic: Running transactiontencentcloud-cvm.basic: Preparing : 1/1tencentcloud-cvm.basic: Running scriptlet: redis-6.2.7-1.el9.x86_64 1/1tencentcloud-cvm.basic: Installing : redis-6.2.7-1.el9.x86_64 1/1tencentcloud-cvm.basic: Running scriptlet: redis-6.2.7-1.el9.x86_64 1/1tencentcloud-cvm.basic: Verifying : redis-6.2.7-1.el9.x86_64 1/1tencentcloud-cvm.basic:tencentcloud-cvm.basic: Installed:tencentcloud-cvm.basic: redis-6.2.7-1.el9.x86_64tencentcloud-cvm.basic:tencentcloud-cvm.basic: Complete!==> tencentcloud-cvm.basic: Trying to detach keypair: skey-2ekzdz0x...tencentcloud-cvm.basic: Waiting for keypair detachedtencentcloud-cvm.basic: Keypair detached==> tencentcloud-cvm.basic: Trying to create a new image: packer-basic...tencentcloud-cvm.basic: Waiting for image readytencentcloud-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.

builder unknown, enquanto versões anteriores do Packer (como a 1.8.7) vêm com os Plugins incluídos.QcloudCVMFullAccess, QcloudCVMFinanceAccess e QcloudAPIFullAccess.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.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
{"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;"]}]}
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 | |
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. |
config.json, winrm_enable_userdata.ps1 e o programa principal do Packer packer.exe no mesmo diretório.packer.exe build config.json
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.==> tencentcloud-cvm: Waiting for image creating...==> tencentcloud-cvm: Image ID: img-xxxxxxBuild 'tencentcloud-cvm' finished after ...
Some builds didn't complete successfully and had errors: tencentcloud-cvm: Image name xxxx existsconfig.json para criar uma imagem com sucesso, é necessário atualizar o valor de image_name ao reutilizá-lo.Waiting for WinRM become available...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:
Script exited with non-zero exit status: 16001.
Esta página foi útil?
Você também pode entrar em contato com a Equipe de vendas ou Enviar um tíquete em caso de ajuda.
comentários