/etc/fstabにデータディスク構成が含まれていないことを確認してください。そうしないと、このイメージで作成したインスタンスを正常に起動できません。






QcloudCVMFullAccess、QcloudCVMFinanceAccess、および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キーを押してファイル編集モードに入り、実際の状況に応じてカスタムイメージ生成器の設定とインスタンス情報を編集します。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"]}]}
パラメータ | 必須かどうか | 説明 |
secret_id | はい | secret_idは、 TENCENTCLOUD_SECRET_ID環境変数に設定することを推奨します。 |
secret_key | はい | secret_keyは、 TENCENTCLOUD_SECRET_KEY環境変数に設定することを推奨します。 |
region | はい | 地域です。一時的なCVMを作成する地域、およびイメージを作成する地域です。 例: ap-guangzhou |
zone | はい | アベイラビリティーゾーンです。一時的なCVMを作成するアベイラビリティーゾーンです。 例: ap-guangzhou-6 |
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 | いいえ | 起動時の最大帯域幅(単位:Mbps)です。値は1~100の間で設定できます。 |
instance_name | いいえ | インスタンス名です。 |
disk_type | いいえ | |
disk_size | いいえ | システムディスクのサイズです。値の範囲(単位:GB): LOCAL_BASIC: 50 Other: 50 ~ 1000(greater than 50の場合は許可リストが必要です) |
data_disks | いいえ | |
vpc_id | いいえ | 一時的なCVMを作成するために必要なvpc_idです。 |
vpc_name | いいえ | VPCの名前です。CVMを作成する前に作成するVPCの名前です。入力しない場合、デフォルト値(例:packer-****)が設定されます。 |
cidr_block | いいえ | vpc_idが設定されていない場合、作成するVPCのCIDRブロックを指定します。 例: false |
subnet_id | いいえ | 一時的なCVMを作成するために必要なsubnet_idです。 |
subnet_name | いいえ | サブネットの名前です。CVMを作成する前に作成するサブネットの名前です。入力しない場合、デフォルト値(例:packer-****)が設定されます。 |
subnet_cidr_block | いいえ | subnet_idが設定されていない場合、作成するサブネットのCIDRブロックを指定します。 例: false |
security_group_id | いいえ | 一時的なCVMを作成するために必要なセキュリティグループIDです。 |
security_group_name | いいえ | セキュリティグループの名前です。 security_group_idが設定されていない場合、セキュリティグループを作成する際に必要です。 |
user_data | いいえ | ユーザーデータです。 |
user_data_file | いいえ | ユーザーデータファイルです。 |
host_name | いいえ | ホスト名です。 |
run_tags | いいえ | Tagです。一時的なCVMを作成する際にインスタンスタグを指定するために使用され、イメージの作成には使用されません。 |
パラメータ | 必須かどうか | 説明 |
disk_type | はい | データディスクのタイプです。有効な選択肢は、 CLOUD_BASIC、CLOUD_PREMIUM、およびCLOUD_SSDです。 |
disk_size | はい | データディスクのサイズです。 |
disk_snapshot_id | はい | データディスクのスナップショットのIDです。 |
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エラーが発生します。一方、バージョン1.9.0より前(例:バージョン1.8.7)のPackerにはPluginが標準で搭載されています。QcloudCVMFullAccess、QcloudCVMFinanceAccess、およびQcloudAPIFullAccessのプリセットポリシーを付与します。packer.exeコマンドを実行するホスト)とPackerビルドマシンとの間のネットワークが相互接続されていることを確認してください。プライベートネットワークによる相互通信を確保するため、config.jsonでパブリックIPアドレスの割り当て("associate_public_ip_address": true)を設定するか、またはクライアント側をconfig.jsonで指定された同一VPC内の他のCVMにすることをお勧めします。packer.exeが含まれています。CMDコマンドラインを使用して解凍したディレクトリに移動し、以下のコマンドを実行してPacker環境の初期化を完了してください。packer.exe plugins install github.com/hashicorp/tencentcloud
{"builders": [{"type": "tencentcloud-cvm","secret_id": "あなたのsecret_id","secret_key": "あなたの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": "大文字、小文字、数字で構成される複雑なパスワード","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;"]}]}
パラメータ | 必須 | 説明 |
secret_id | はい | TENCENTCLOUD_SECRET_ID環境変数を設定することをお勧めします。 |
secret_key | はい | TENCENTCLOUD_SECRET_KEY環境変数を設定することをお勧めします。 |
region | はい | 地域です。一時的なCVMを作成する地域、およびイメージを作成する地域です。 例: ap-guangzhou |
zone | はい | アベイラビリティーゾーンです。一時的なCVMを作成するアベイラビリティーゾーンです。 例: ap-guangzhou-4 |
instance_type | はい | インスタンスモデルです。異なるインスタンスモデルは、異なるリソース仕様を指定します。 例: S5.MEDIUM4 |
source_image_id | はい | 例: img-m07ny34j |
image_name | はい | カスタムイメージの名前です。英字、数字、 -で構成され、60文字を超えてはいけません。例: test_Packer1 |
communicator | はい | Packerがターゲットマシンに接続する方法を指定します。 winrmに固定され、WinRM接続を通じてマシンと通信を確立します。 |
winrm_port | はい | WinRM接続のポート番号です。 5985に固定されています。 |
winrm_username | はい | |
winrm_password | はい | |
associate_public_ip_address | いいえ | 一時的なCVMのパブリックIPアドレスを有効化するかどうかです。デフォルトは falseです。パブリックIPアドレスで接続する場合は、trueに設定してください。 |
disk_type | いいえ | |
disk_size | いいえ | システムディスクのサイズです。単位はGBで、例えば40GBの場合は40を入力してください。 |
vpc_id | いいえ | 一時的なCVMを作成するために必要なVPC IDです。 |
subnet_id | いいえ | 一時的なCVMを作成するために必要なサブネットIDです。 |
security_group_id | いいえ | 一時的なCVMを作成するために必要なセキュリティグループIDです。 |
user_data_file | いいえ | ユーザーデータファイルのパスです。 |
inline | いいえ | イメージ作成前に必要な業務ロジックです。例えば、パブリックネットワークに接続可能な場合、Chromeブラウザを自動インストールします。 |
config.jsonとwinrm_enable_userdata.ps1をPackerのメインプログラムpacker.exeと同じディレクトリに配置してください。packer.exe build config.json
packer.exeの実行中、CVMコンソールで作成されたビルドマシンを確認できますが、そのサーバーは操作しないでください。イメージの作成が成功したか失敗したかに関わらず、最終的にそのサーバーは自動的に回収されます。回収に異常がある場合は、オンラインカスタマーサービスに連絡して対応してください。==> 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を使用してイメージを一度作成した後、再利用する際にはimage_nameの値を更新する必要があります。Waiting for WinRM become available... が常に表示されるconfig.json内のwinrm_passwordとwinrm_enable_userdata.ps1内のパスワードが一致していることを確認してください。winrm_enable_userdata.ps1のパスワード設定位置は以下の通りです:
Script exited with non-zero exit status: 16001.
フィードバック