tencent cloud

Cloud Virtual Machine

Pembuatan Image Kustom

Unduh
Mode fokus
Ukuran font
Terakhir diperbarui: 2026-06-15 15:20:13

Skenario Operasi

Selain menggunakan image publik yang disediakan oleh Tencent Cloud, Anda juga dapat membuat Image Kustom. Setelah membuat Image Kustom, Anda dapat dengan cepat membuat instance CVM Tencent Cloud dengan konfigurasi identik dengan image tersebut di Konsol Tencent Cloud.
Catatan:
Karena image menggunakan layanan snapshot CBS:
Saat membuat Image Kustom, snapshot yang terkait dengan image tersebut akan dibuat secara default, dan menyimpan Image Kustom akan menimbulkan Biaya Snapshot tertentu. Untuk detailnya, lihat Ringkasan Biaya Snapshot.

Hal-hal yang Perlu Diperhatikan

Setiap wilayah sementara mendukung 500 Image Kustom. Dalam kondisi normal, ukuran kapasitas Image Kustom yang dibuat konsisten dengan ukuran disk instance.
Jika instance Linux Anda memiliki disk data, tetapi Anda hanya membuat Image Kustom disk sistem, harap pastikan /etc/fstab tidak berisi konfigurasi disk data. Jika tidak, instance yang dibuat menggunakan image tersebut tidak dapat melakukan booting normal.
Proses pembuatan memerlukan waktu sepuluh menit atau lebih lama, di mana durasi spesifiknya terkait dengan ukuran data instance. Harap persiapkan hal-hal terkait terlebih dahulu agar tidak memengaruhi bisnis.
Jika Instans Windows Anda perlu bergabung ke domain dan menggunakan akun domain, sebelum membuat Image Kustom, harap jalankan operasi Sysprep untuk memastikan SID unik setelah instance bergabung ke domain. Untuk detailnya, lihat Mencapai Keunikan SID Setelah CVM Bergabung ke Domain Melalui Sysprep.
Jika Anda menggunakan server bare metal yang dikonfigurasi dengan kartu jaringan 25Gbps (yaitu nilai bandwidth intranet model mesin adalah 25Gbps), pembuatan Image Kustom menggunakan konsol dan API sementara tidak didukung.

Langkah-langkah Operasi

Membuat Menggunakan Konsol Instance
Membuat Menggunakan Konsol Image
Membuat Menggunakan API
Klien Linux Berbasis Alat Packer
Klien Windows Berbasis Alat Packer

Melakukan Shutdown Instance (Opsional)

1. Login ke konsol Cloud Server, lalu periksa apakah instance yang bersangkutan perlu dimatikan.
Perhatian:
Instance yang dibuat berdasarkan image publik setelah Juli 2018 (dengan disk sistem CBS) mendukung pembuatan image secara online (yaitu membuat image tanpa mematikan instance). Untuk instance selain kasus ini, harap matikan instance terlebih dahulu sebelum membuat image, agar image sepenuhnya konsisten dengan lingkungan penerapan instance saat ini.
Jika diperlukan, lanjutkan ke langkah berikutnya.
Tidak perlu, harap jalankan langkah Membuat Image Kustom.
2. Pada halaman manajemen instance, lakukan operasi sesuai mode tampilan yang digunakan:
Mode Daftar: Pilih Lainnya di sebelah kanan baris instance > Status Instance > Matikan. Seperti yang ditunjukkan di bawah ini:

Mode Tab: Pilih Matikan pada halaman detail instance. Seperti yang ditunjukkan di bawah ini:


Membuat Image Kustom

1. Pada halaman manajemen instance, lakukan operasi sesuai mode tampilan yang digunakan:
Mode Daftar: Pilih Lainnya > Image/Sistem Operasi > Buat Image Kustom. Seperti yang ditunjukkan di bawah ini:

Mode Tab: Pilih Operasi Lainnya > Image/Sistem Operasi > Buat Image Kustom di sudut kanan atas. Seperti yang ditunjukkan di bawah ini:

2. Di jendela Buat Image Kustom yang muncul, konfigurasikan dengan mengacu pada informasi berikut:
Nama Image dan Deskripsi Image: Tentukan nama dan deskripsi kustom.
Label: Anda dapat menambahkan label sesuai kebutuhan untuk klasifikasi, pencarian, dan pengelompokan sumber daya. Untuk informasi lebih lanjut, lihat Label.
Catatan:
Jika Anda perlu membuat Image Kustom yang mencakup disk sistem dan disk data, harap kirimkan tiket untuk mengajukan aktivasi fitur.
3. Klik Buat Image.
Anda dapat mengklik Image di bilah navigasi kiri, lalu melihat progres pembuatan image di halaman image.

Membuat Instance Menggunakan Image Kustom (Opsional)

Setelah image selesai dibuat, pilih image yang Anda buat di daftar image, lalu klik Buat Instance di sisi kanan barisnya untuk membeli server dengan image yang sama seperti sebelumnya. Seperti yang ditunjukkan di bawah ini:


Membuat Image Kustom

1. Login ke konsol Cloud Server, lalu periksa apakah instance yang bersangkutan perlu dimatikan.
Perhatian:
Instance yang dibuat setelah Juli 2018 (dengan disk sistem CBS) mendukung pembuatan image secara online (yaitu membuat image tanpa mematikan instance). Untuk instance selain kasus ini, harap matikan instance terlebih dahulu sebelum membuat image, agar image sepenuhnya konsisten dengan lingkungan penerapan instance saat ini.
Jika diperlukan, matikan instance.
Tidak perlu, silakan lanjutkan ke langkah-langkah berikutnya.
2. Klik Image di bilah navigasi kiri, masuk ke halaman image, lalu pilih Buat Image Kustom di atas daftar.

3. Di jendela Buat Image Kustom yang muncul, konfigurasikan dengan mengacu pada informasi berikut:
Pilih Instance: Pilih instance di wilayah ini yang perlu dibuat Image Kustom.
Nama Image dan Deskripsi Image: Tentukan nama dan deskripsi kustom.
Label: Anda dapat menambahkan label sesuai kebutuhan untuk klasifikasi, pencarian, dan pengelompokan sumber daya. Untuk informasi lebih lanjut, lihat Label.
Ketika instance Anda memiliki disk data, image mesin lengkap yang mencakup disk sistem dan disk data akan dibuat secara default, dan Anda dapat menentukan untuk hanya membuat image disk sistem.
4. Klik Buat Image.
Setelah itu, Anda dapat melihat progres pembuatan image di halaman Image.

Membuat Instance Menggunakan Image Kustom (Opsional)

Setelah image selesai dibuat, pilih image yang Anda buat di daftar image, lalu klik Buat Instance di sisi kanan barisnya untuk membeli server dengan image yang sama seperti sebelumnya. Seperti yang ditunjukkan di bawah ini:

Anda dapat menggunakan antarmuka CreateImage untuk membuat Image Kustom tuk detailnya, Anda dapat merujuk ke API Buat Image.

Informasi Latar Belakang

Packer adalah alat pembuatan image otomatis yang bersifat sumber terbuka dan ringan. Alat ini menggunakan file konfigurasi dalam format JSON atau HCL2 (HashiCorp Configuration Language) untuk mendefinisikan proses pembuatan image, sehingga memungkinkan pembuatan dan penerapan image yang cepat dan andal. Packer juga memberikan kemudahan penggunaan untuk menguji dan memperbarui image, serta mengurangi biaya waktu untuk mengoperasikan dan mengelola image. Untuk informasi lebih lanjut, lihat Situs Web Resmi Packer.

Prasyarat

Subpengguna telah dibuat dan telah memiliki semua izin untuk CVM dan Cloud API.
Untuk membuat subpengguna, lihat Buat Subpengguna.
Untuk memberikan izin kepada subpengguna, lihat Pengaturan Izin Subpengguna. Artikel ini memberikan strategi yang telah ditetapkan QcloudCVMFullAccess, QcloudCVMFinanceAccess, dan QcloudAPIFullAccess kepada subpengguna.
Untuk membuat SecretId dan SecretKey bagi subpengguna, lihat langkah-langkah operasi di Manajemen Kunci Akses Sub-akun. Harap catat dan simpan dengan baik.
Perhatian:
Anda dapat menggunakan SecretId dan SecretKey akun utama. Namun, karena akun utama memiliki kontrol penuh atas sumber daya yang terdaftar, untuk menghindari risiko keamanan akibat kebocoran kunci akses, tidak disarankan menggunakan akun utama. Harap buat sub-akun.

Langkah-langkah Operasi

Menginstal Packer

1. Jalankan perintah berikut untuk mendapatkan paket instalasi Packer.
wget https://releases.hashicorp.com/packer/1.9.4/packer_1.9.4_linux_amd64.zip
2. Jalankan perintah berikut untuk mengekstrak paket instalasi Packer.
unzip packer_1.9.4_linux_amd64.zip
3. Jalankan perintah berikut untuk menginstal Packer ke direktori variabel lingkungan /usr/local/bin.
sudo mv packer /usr/local/bin
4. Jalankan perintah berikut untuk melihat versi Packer, sehingga dapat memverifikasi apakah instalasi berhasil.
packer -v
Catatan:
Untuk menginstal Packer, Anda juga dapat merujuk ke Situs Web Resmi Packer.

Mendefinisikan Templat Packer

Untuk membuat Image Kustom menggunakan Packer, pertama-tama, Anda perlu mendefinisikan file templat dalam format HCL atau JSON. Selanjutnya, Anda perlu menentukan Builders (pembangkit) dan Provisioners (pengatur) untuk membuat Image Kustom dalam file ini, serta informasi instance sementara yang digunakan selama proses pembuatan.
1. Jalankan perintah berikut untuk membuat file templat.
Format HCL
Format JSON
vim tencentcloud.pkr.hcl
vim tencentcloud.json
2. Tekan i untuk masuk ke mode edit file, kemudian edit konfigurator pembangkit Image Kustom dan informasi instance berdasarkan situasi aktual.
Format HCL
Format 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"]
}]
}
Penjelasan setiap parameter kustom ditunjukkan dalam tabel berikut:
Parameter
Apakah Wajib
Deskripsi
secret_id
Ya
secret_id direkomendasikan untuk diatur sebagai variabel lingkungan TENCENTCLOUD_SECRET_ID.
secret_key
Ya
secret_key direkomendasikan untuk diatur sebagai variabel lingkungan TENCENTCLOUD_SECRET_KEY.
region
Ya
Wilayah. Wilayah tempat CVM sementara dibuat, serta wilayah tempat image dibuat.
Contoh nilai: ap-guangzhou
zone
Ya
Zona Ketersediaan. Zona Ketersediaan tempat CVM sementara dibuat.
Contoh nilai: ap-guangzhou-6
instance_type
Ya
Tipe instance. Tipe instance yang berbeda menentukan spesifikasi sumber daya yang berbeda.
Contoh nilai: SA3.MEDIUM2
source_image_id
Ya
ID image dasar, digunakan untuk membuat image CVM sementara, dapat diperoleh dari daftar image publik atau diperoleh melalui kueri antarmuka DescribeImages.
Contoh nilai: img-9xqekomx
image_name
Ya
Menentukan nama Image Kustom. Nama tersebut harus terdiri dari huruf, angka, dan tanda hubung (-), serta tidak boleh melebihi 60 karakter.
Contoh nilai: packer-basic
image_description
Tidak
Deskripsi image. Tidak boleh melebihi 60 karakter.
associate_public_ip_address
Tidak
Apakah akan mengaktifkan IP Publik untuk CVM sementara, secara default false. Jika terhubung melalui IP Publik, harap atur nilainya menjadi true.
force_poweroff
Tidak
Ketika proses pembuatan image dengan menutup CVM sementara gagal, apakah akan melakukan shutdown paksa untuk membuat image, secara default false.
sysprep
Tidak
Apakah akan mengaktifkan Sysprep selama pembuatan image Windows.
Contoh nilai: false
image_copy_regions
Tidak
Wilayah yang akan disalin ke setelah image dibuat.
Contoh nilai: ["ap-beijing"]
image_share_accounts
Tidak
Akun yang akan dibagikan setelah image dibuat.
Contoh nilai: ["10002297xxxx"]
skip_region_validation
Tidak
Tidak memeriksa wilayah saat verifikasi.
Contoh nilai: false
internet_max_bandwidth_out
Tidak
Bandwidth maksimum saat startup (dalam satuan Mbps). Nilai dapat diatur dalam rentang 1 hingga 100.
instance_name
Tidak
Nama instance.
disk_type
Tidak
Tipe disk sistem, secara default adalah CLOUD_PREMIUM. Anda dapat merujuk ke informasi disk sistem.
disk_size
Tidak
Ukuran disk sistem. Rentang nilai (dalam satuan GB):
LOCAL_BASIC: 50
Other: 50 ~ 1000 (>50 memerlukan whitelist)
data_disks
Tidak
Konfigurasi disk data. Untuk detail disk, silakan lihat detail disk data.
vpc_id
Tidak
vpc_id yang diperlukan untuk membuat CVM sementara.
vpc_name
Tidak
Nama jaringan privat, yaitu nama vpc yang dibuat sebelum membuat CVM. Jika tidak dimasukkan, akan diberikan nilai default, misalnya packer-****.
cidr_block
Tidak
Jika vpc_id tidak diatur, tentukan blok CIDR untuk VPC yang akan dibuat.
Contoh nilai: false
subnet_id
Tidak
subnet_id yang diperlukan untuk membuat CVM sementara.
subnet_name
Tidak
Nama subnet, yaitu nama Subnet yang dibuat sebelum membuat CVM. Jika tidak dimasukkan, akan diberikan nilai default, misalnya packer ****.
subnet_cidr_block
Tidak
Jika subnet_id tidak diatur, tentukan blok CIDR untuk Subnet yang akan dibuat.
Contoh nilai: false
security_group_id
Tidak
ID grup keamanan yang diperlukan untuk membuat CVM sementara.
security_group_name
Tidak
Nama grup keamanan, diperlukan saat membuat grup keamanan jika security_group_id tidak ditetapkan.
user_data
Tidak
Data pengguna.
user_data_file
Tidak
File data pengguna.
host_name
Tidak
Nama host.
run_tags
Tidak
Tag, digunakan untuk menetapkan tag instance saat membuat CVM sementara, dan tidak akan digunakan saat membuat image.
Detail Disk Data
:
Parameter
Apakah Wajib
Deskripsi
disk_type
Ya
Tipe disk data. Pilihan yang valid: CLOUD_BASIC, CLOUD_PREMIUM, dan CLOUD_SSD.
disk_size
Ya
Ukuran disk data.
disk_snapshot_id
Ya
ID snapshot disk data.
Untuk parameter lebih lanjut, silakan lihat Parameter Situs Web Resmi Packer.
3. Tekan tombol Esc, lalu masukkan: wq dan tekan Enter untuk menyimpan dan keluar.

Membuat Image Kustom

1. Konfigurasikan variabel lingkungan SecretId dan SecretKey.
export TENCENTCLOUD_SECRET_ID=xxxx
export TENCENTCLOUD_SECRET_KEY=xxxx
2. Jalankan perintah berikut untuk mulai membuat Image Kustom.
Format HCL
Format JSON
packer build tencentcloud.pkr.hcl
packer build tencentcloud.json
Perhatian:
Operasi ini akan membuat sumber daya berbayar, harap perhatikan untuk melepaskan dan membersihkannya. Contohnya seperti instance CVM, IP Publik, image, dll. (kecuali image, sumber daya lainnya dalam kondisi normal akan dibersihkan secara otomatis).
Hasil operasi adalah sebagai berikut:
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. Lihat Image Kustom yang telah dibuat.
3.2 Di bilah navigasi kiri, klik Image untuk masuk ke halaman manajemen image.
3.3 Klik wilayah di sudut kiri atas, maka Anda dapat melihat Image Kustom di wilayah tersebut di dalam kotak tarik-turun.


Skenario Operasi

Di sini dijelaskan cara Anda membuat Image Kustom di klien Windows menggunakan alat Packer melalui koneksi WinRM. Packer adalah alat pembuatan image otomatis yang diluncurkan oleh HashiCorp, yang dapat membantu Anda membuat Image Kustom CVM dengan cepat dan konsisten.
Perhatian:
Windows bergantung pada WinRM untuk membangun koneksi jaringan dan mengirimkan perintah melalui WinRM. Karena image publik Windows tidak sepenuhnya mengaktifkan WinRM secara default, maka perlu menggunakan UserData untuk mengaktifkan WinRM. Kode bisnis yang awalnya ditempatkan di UserData saat memanggil antarmuka RunInstances kemudian ditempatkan di bagian provisioners untuk dieksekusi.
Ketika Packer membuat mesin dan mengemas image, ia tidak akan menunggu kode UserData selesai dieksekusi sebelum menjalankan modul provisioners. Selain itu, Packer sangat bergantung pada WinRM di sistem Windows, sedangkan WinRM tidak sepenuhnya diaktifkan di image publik sysprep.
Mulai dari versi 1.9.0, Plugin dipisahkan dari program utama Packer, sehingga perlu diinstal secara terpisah. Jika tidak, akan muncul pesan builder unknown. Sedangkan Packer sebelum versi 1.9.0 (misalnya versi 1.8.7) sudah dilengkapi dengan Plugin secara bawaan.

Prasyarat

Subpengguna telah dibuat dan telah memiliki semua izin untuk CVM dan Cloud API.
Untuk membuat subpengguna, lihat Buat Subpengguna.
Untuk memberikan izin kepada subpengguna, lihat Pengaturan Izin Subpengguna. Di sini, strategi yang telah ditetapkan QcloudCVMFullAccess, QcloudCVMFinanceAccess, dan QcloudAPIFullAccess diberikan kepada subpengguna.
SecretId dan SecretKey telah dibuat untuk subpengguna. Untuk langkah-langkah operasi, lihat Manajemen Kunci Akses Sub-akun. Harap catat dan simpan dengan baik.
Perhatian:
Anda dapat menggunakan SecretId dan SecretKey akun utama. Namun, karena akun utama memiliki kontrol penuh atas sumber daya yang terdaftar, untuk menghindari risiko keamanan akibat kebocoran kunci akses, tidak disarankan menggunakan akun utama. Harap buat sub-akun.
Pastikan ada komunikasi jaringan antara klien (host yang menjalankan perintah packer.exe) dan mesin pembungkus Packer. Disarankan untuk mengonfigurasi alokasi Jaringan publik ("associate_public_ip_address": true) di config.json, atau klien adalah CVM lain di dalam VPC yang sama yang ditentukan oleh config.json, agar komunikasi jaringan internal terjamin.

Langkah-langkah Operasi

Langkah 1: Instal Packer

1. Unduh Packer.
2. Ekstrak paket instalasi Packer. Di sini, versi 1.14.1 digunakan sebagai contoh, dan file yang diekstrak berisi packer.exe. Gunakan baris perintah CMD untuk masuk ke direktori ekstraksi, kemudian jalankan perintah berikut untuk menyelesaikan inisialisasi lingkungan Packer.
packer.exe plugins install github.com/hashicorp/tencentcloud
Catatan:
Inisialisasi lingkungan Packer memerlukan pengambilan Packer Plugin dari GitHub. Instance di Tiongkok Daratan mengakses GitHub dengan kecepatan yang lebih lambat, harap tunggu dengan sabar. Jika mengalami kesalahan, harap coba lagi atau gunakan host di negara dan wilayah lain.

Langkah 2: Definisikan Templat Packer

Untuk membuat Image Kustom menggunakan Packer, pertama-tama Anda perlu mendefinisikan file templat dalam format JSON atau HCL. Anda perlu menentukan Builders (pembangkit) dan Provisioners (pengatur) untuk membuat Image Kustom dalam file templat, serta informasi instance sementara yang digunakan selama proses pembuatan.
Konten file konfigurasi Windows Packer lengkap Tencent Cloud config.json adalah sebagai berikut:
{
"builders": [
{
"type": "tencentcloud-cvm",
"secret_id": "secret_id Anda",
"secret_key": "secret_key Anda",
"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": "Kata sandi kompleks yang terdiri dari huruf besar, huruf kecil, dan angka",
"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;"
]
}
]
}
Anda perlu memodifikasi konfigurator pembangkit Image Kustom dan informasi instance berdasarkan situasi aktual. Penjelasan masing-masing parameter adalah sebagai berikut:
Parameter
Apakah Wajib
Deskripsi
secret_id
Ya
Disarankan untuk mengatur variabel lingkungan TENCENTCLOUD_SECRET_ID.
secret_key
Ya
Disarankan untuk mengatur variabel lingkungan TENCENTCLOUD_SECRET_KEY.
region
Ya
Wilayah. Wilayah tempat CVM sementara dibuat, serta wilayah tempat image dibuat.
Contoh nilai: ap-guangzhou
zone
Ya
Zona Ketersediaan. Zona Ketersediaan tempat CVM sementara dibuat.
Contoh nilai: ap-guangzhou-4
instance_type
Ya
Tipe instance. Tipe instance yang berbeda menentukan spesifikasi sumber daya yang berbeda.
Contoh nilai: S5.MEDIUM4
source_image_id
Ya
ID image dasar, digunakan untuk membuat image CVM sementara, dapat diperoleh dari daftar image publik atau diperoleh melalui kueri antarmuka DescribeImages.
Contoh nilai: img-m07ny34j
image_name
Ya
Nama Image Kustom. Nama tersebut harus terdiri dari huruf, angka, dan -, serta tidak boleh melebihi 60 karakter.
Contoh nilai: test_Packer1.
communicator
Ya
Menentukan cara Packer digunakan untuk terhubung ke mesin target, ditetapkan sebagai winrm, dan akan membangun komunikasi dengan mesin melalui koneksi WinRM.
winrm_port
Ya
Nomor port untuk koneksi WinRM, ditetapkan sebagai 5985.
winrm_username
Ya
Nama pengguna yang digunakan untuk terhubung ke WinRM, harus sesuai dengan nama pengguna di winrm_enable_userdata.ps1.
winrm_password
Ya
Kata sandi yang digunakan untuk terhubung ke WinRM, harus sesuai dengan kata sandi di winrm_enable_userdata.ps1.
associate_public_ip_address
Tidak
Apakah akan mengaktifkan IP Publik untuk CVM sementara, secara default false. Jika terhubung melalui IP Publik, harap atur nilainya menjadi true.
disk_type
Tidak
Tipe disk sistem, secara default adalah CLOUD_PREMIUM. Untuk informasi lebih lanjut, silakan lihat SystemDisk.
disk_size
Tidak
Ukuran disk sistem, dalam satuan GB, misalnya 40GB, masukkan 40.
vpc_id
Tidak
ID VPC yang diperlukan untuk membuat CVM sementara.
subnet_id
Tidak
ID subnet yang diperlukan untuk membuat CVM sementara.
security_group_id
Tidak
ID grup keamanan yang diperlukan untuk membuat CVM sementara.
user_data_file
Tidak
Jalur file data pengguna.
inline
Tidak
Logika bisnis yang diperlukan sebelum membuat image. Misalnya, Chrome browser akan diinstal secara otomatis ketika dapat terhubung ke jaringan publik.
Untuk parameter lebih lanjut, silakan lihat Parameter Situs Web Resmi Packer.

Langkah 3: Buat Image Kustom

1. Letakkan config.json dan winrm_enable_userdata.ps1 bersama program utama Packer packer.exe di direktori yang sama.
2. Setelah beralih ke direktori yang sesuai, jalankan perintah berikut:
packer.exe build config.json
Catatan:
Selama proses eksekusi packer.exe, konsol Cloud Server dapat melihat mesin pembungkus yang dibuat. Harap jangan mengoperasikan server tersebut. Terlepas dari apakah pembuatan image berhasil atau gagal, server tersebut pada akhirnya akan ditarik kembali secara otomatis. Jika terdapat anomali penarikan kembali, harap hubungi Dukungan Pelanggan Online untuk penanganan.
3. Setelah perintah dieksekusi, jika hasil output berisi informasi serupa dengan berikut, maka itu menunjukkan bahwa pembuatan image berhasil:
==> tencentcloud-cvm: Waiting for image creating...
==> tencentcloud-cvm: Image ID: img-xxxxxx
Build 'tencentcloud-cvm' finished after ...
Anda juga dapat pergi ke halaman Image Kustom di konsol Cloud Server untuk melihat image yang telah dibuat.

Pertanyaan Umum

Saat membuat image, muncul pesan Some builds didn't complete successfully and had errors: tencentcloud-cvm: Image name xxxx exists

Setelah berhasil membuat image satu kali menggunakan config.json, nilai image_name perlu diperbarui saat digunakan kembali.

Saat membuat image, terus ditampilkan Waiting for WinRM become available...

Harap pastikan kata sandi winrm_password di config.json konsisten dengan kata sandi di winrm_enable_userdata.ps1. Lokasi konfigurasi kata sandi winrm_enable_userdata.ps1 adalah sebagai berikut:


Saat membuat image, muncul pesan Script exited with non-zero exit status: 16001.

Kemungkinan karena tindakan keamanan jaringan dari perangkat lunak keamanan, akses jaringan Packer terpengaruh sehingga menyebabkan waktu pembungkusan habis. Disarankan agar klien sebisa mungkin menggunakan CVM di bawah jaringan independen.

Operasi Terkait

Lihat Jumlah Image Kustom di Setiap Wilayah

Dalam skenario seperti jumlah sumber daya image yang banyak atau penerapan lintas wilayah, fitur kueri satu klik jumlah image di berbagai wilayah dapat membantu Anda mengelola sumber daya image dengan lebih efisien.
2. Di bilah navigasi kiri, klik Image untuk masuk ke halaman manajemen image.
3. Klik wilayah di sudut kiri atas, maka Anda dapat melihat jumlah Image Kustom di setiap wilayah di dalam kotak tarik-turun.

4. Beralih ke halaman manajemen Image Berbagi, klik wilayah di sudut kiri atas, maka Anda dapat melihat jumlah Image Berbagi di setiap wilayah di dalam kotak tarik-turun.

Migrasi Data Disk Data

Jika Anda perlu mempertahankan data pada disk data instance asli saat meluncurkan instance baru, Anda dapat membuat Snapshot untuk disk data terlebih dahulu, lalu menggunakan snapshot disk data tersebut untuk membuat disk data CBS baru saat meluncurkan instance baru.
Untuk informasi lebih lanjut, lihat Membuat CBS dari Snapshot.


Bantuan dan Dukungan

Apakah halaman ini membantu?

masukan