Anda dapat mengkonfigurasi OpenStack untuk menulis metadata ke drive konfigurasi khusus yang melekat pada instance ketika boot. Instance dapat me-mount drive ini dan membaca file itu untuk mendapatkan informasi yang biasanya tersedia melalui metadata service. Metadata ini berbeda dari data pengguna.
Satu kasus digunakan untuk menggunakan drive konfigurasi adalah untuk lulus konfigurasi jaringan bila Anda tidak menggunakan DHCP untuk menetapkan alamat IP untuk instance. Misalnya, Anda mungkin lulus konfigurasi alamat IP untuk instance melalui drive konfigurasi, yang instance dapat me-mount dan akses sebelum Anda mengkonfigurasi pengaturan jaringan instance.
Setiap sistem operasi guest modern yang mampu pemasangan ISO 9660 atau berkas VFAT sistem dapat menggunakan drive konfigurasi.
Untuk menggunakan drive konfigurasi, Anda harus mengikuti persyaratan berikut untuk host dan image komputasi
Compute host requirements (Persyaratan host Compute)
Hypervisors berikut mendukung drive konfigurasi: libvirt, XenServer, Hyper-V, dan VMware.
Juga, layanan Bare Metal mendukung drive konfigurasi.
Untuk menggunakan drive konfigurasi dengan libvirt, XenServer, atau VMware, Anda harus menginstal paket genisoimage pada setiap host komputasi. Jika tidak, instance tidak boot dengan benar.
Gunakan flag mkisofs_cmd`
untuk mengatur jalan dimana Anda menginstal program genisoimage. Jika genisoimage berada di jalur yang sama dengan layanan nova-compute
, Anda tidak perlu mengatur bendera (flag) ini.
Untuk menggunakan drive konfigurasi dengan Hyper-V, Anda harus mengatur nilai mkisofs_cmd
ke path lengkap ke instalasi mkisofs.exe
. Selain itu, Anda harus mengatur nilai qemu_img_cmd
di bagian konfigurasi `` hyperv`` ke path lengkap ke instalasi perintah qemu-img.
Untuk menggunakan drive konfigurasi dengan layanan Bare Metal, Anda tidak perlu mempersiapkan apa-apa karena layanan Bare Metal memperlakukan drive konfigurasi benar.
Image requirements (persyaratan image)
Image yang dibuat dengan versi terbaru dari paket cloud-init secara otomatis dapat mengakses metadata melewati drive konfigurasi. Tabel berikut mencantumkan referensi untuk versi cloud-init yang dipetakan ke sistem operasi tertentu:
Sistem operasi | Referensi untuk versi cloud-init |
---|---|
Ubuntu | http://packages.ubuntu.com/search?keywords=cloud-init |
Fedora (RHEL) | https://www.rpmfind.net/linux/rpm2html/search.php?query=cloud-init |
openSUSE (SLE) | http://software.opensuse.org/download.html?project=Cloud%3ATools&package=cloud-init |
Jika image tidak memiliki paket cloud-init terinstal, Anda harus menyesuaikan image untuk menjalankan script yang me-mount drive konfigurasi pada boot, membaca data dari drive, dan mengambil tindakan yang tepat seperti menambahkan kunci publik (public key) ke akun . Anda dapat membaca lebih detail tentang bagaimana data diorganisasi pada drive konfigurasi.
Jika Anda menggunakan Xen dengan konfigurasi drive, gunakan parameter konfigurasi xenapi_disable_agent
untuk menonaktifkan agen.
Guidelines (pedoman)
ec2
.openstack
, selalu pilih versi API tertinggi pada tanggal tersebut konsumen Anda mendukung. Misalnya, jika image guest Anda mendukung 2012/03/05, 2012/08/05, dan 2013/04/13 versi, cobalah petram 2013/04/13 dan jatuh kembali ke versi sebelumnya jika 2013/04/13 adalah tidak hadir.Untuk mengaktifkan drive konfigurasi, lewatkan parameter --config-drive true
ke perintah openstack server create.
Contoh berikut memungkinkan drive konfigurasi dan melewati data pengguna, dua file, dan dua kunci/nilai metadata pasangan (key/value metadata pair), yang semuanya dapat diakses dari drive konfigurasi:
$ openstack server create --config-drive true --image my-image-name \
--flavor 1 --key-name mykey --user-data ./my-user-data.txt \
--file /etc/network/interfaces=/home/myuser/instance-interfaces \
--file known_hosts=/home/myuser/.ssh/known_hosts \
--property role=webservers --property essential=false MYINSTANCE
Anda juga dapat mengkonfigurasi layanan Compute untuk selalu membuat drive konfigurasi dengan menetapkan opsi berikut di file /etc/nova/nova.conf
:
force_config_drive = true
Catatan
Jika pengguna melewatkan bendera (flag) --config-drive true
ke perintah nova boot, administrator tidak dapat menonaktifkan drive konfigurasi.
Jika sistem operasi guest Anda mendukung mengakses disk dengan label, Anda dapat me-mount drive konfigurasi sebagai perangkat /dev/disk/by-label/configurationDriveVolumeLabel
. Pada contoh berikut, drive konfigurasi memiliki label volume config-2
:
# mkdir -p /mnt/config
# mount /dev/disk/by-label/config-2 /mnt/config
Catatan
Pastikan bahwa Anda menggunakan setidaknya versi 0.3.1 dari CirrOS untuk dukungan konfigurasi drive.
Jika sistem operasi guest Anda tidak menggunakan udev
, direktori /dev/disk/by-label
tidak hadir.
Anda dapat menggunakan perintah blkid untuk mengidentifikasi perangkat blok yang sesuai dengan drive konfigurasi. Misalnya, ketika anda boot image CirrOS dengan flavor m1.tiny
, perangkat /dev/vdb
:
# blkid -t LABEL="config-2" -odevice
/dev/vdb
Setelah diidentifikasi, Anda dapat me-mount perangkat:
# mkdir -p /mnt/config
# mount /dev/vdb /mnt/config
Dalam contoh ini, isi dari drive konfigurasi adalah sebagai berikut
ec2/2009-04-04/meta-data.json
ec2/2009-04-04/user-data
ec2/latest/meta-data.json
ec2/latest/user-data
openstack/2012-08-10/meta_data.json
openstack/2012-08-10/user_data
openstack/content
openstack/content/0000
openstack/content/0001
openstack/latest/meta_data.json
openstack/latest/user_data
File-file yang muncul pada drive konfigurasi tergantung pada argumen dimana Anda melewatkan ke perintah openstack server create.
Contoh berikut menunjukkan isi dari file openstack/2012-08-10/meta_data.json
dan openstack/latest/meta_data.json
. File ini adalah identik. Isi file diformat supaya dapat dibaca.
{
"availability_zone": "nova",
"files": [
{
"content_path": "/content/0000",
"path": "/etc/network/interfaces"
},
{
"content_path": "/content/0001",
"path": "known_hosts"
}
],
"hostname": "test.novalocal",
"launch_index": 0,
"name": "test",
"meta": {
"role": "webservers",
"essential": "false"
},
"public_keys": {
"mykey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDBqUfVvCSez0/Wfpd8dLLgZXV9GtXQ7hnMN+Z0OWQUyebVEHey1CXuin0uY1cAJMhUq8j98SiW+cU0sU4J3x5l2+xi1bodDm1BtFWVeLIOQINpfV1n8fKjHB+ynPpe1F6tMDvrFGUlJs44t30BrujMXBe8Rq44cCk6wqyjATA3rQ== Generated by Nova\n"
},
"uuid": "83679162-1378-4288-a2d4-70e13ec132aa"
}
Perhatikan efek dari argumen --file /etc/network/interfaces=/home/myuser/instance-interfaces
yang dilewatkan ke perintah openstack server create. Isi file ini terkandung dalam file openstack/content/0000
pada drive konfigurasi, dan path ditetapkan sebagai /etc/network/interfaces
dalam file meta_data.json
.
Contoh berikut menunjukkan isi dari file ec2/2009-04-04/meta-data.json
dan ec2/latest/meta-data.json
. File ini adalah identik. Isi file diformat agar lebih mudah dibaca.
{
"ami-id": "ami-00000001",
"ami-launch-index": 0,
"ami-manifest-path": "FIXME",
"block-device-mapping": {
"ami": "sda1",
"ephemeral0": "sda2",
"root": "/dev/sda1",
"swap": "sda3"
},
"hostname": "test.novalocal",
"instance-action": "none",
"instance-id": "i-00000001",
"instance-type": "m1.tiny",
"kernel-id": "aki-00000002",
"local-hostname": "test.novalocal",
"local-ipv4": null,
"placement": {
"availability-zone": "nova"
},
"public-hostname": "test.novalocal",
"public-ipv4": "",
"public-keys": {
"0": {
"openssh-key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDBqUfVvCSez0/Wfpd8dLLgZXV9GtXQ7hnMN+Z0OWQUyebVEHey1CXuin0uY1cAJMhUq8j98SiW+cU0sU4J3x5l2+xi1bodDm1BtFWVeLIOQINpfV1n8fKjHB+ynPpe1F6tMDvrFGUlJs44t30BrujMXBe8Rq44cCk6wqyjATA3rQ== Generated by Nova\n"
}
},
"ramdisk-id": "ari-00000003",
"reservation-id": "r-7lfps8wj",
"security-groups": [
"default"
]
}
File openstack/2012-08-10/user_data
, openstack/latest/user_data
, ec2/2009-04-04/user-data
, dan ec2/latest/user-data
dihadirkan hanya jika flag --user-data
dan isi dari file data pengguna dilewatkan ke perintah openstack server create.
Format default dari drive konfigurasi sebagai sistem file ISO 9660. Secara eksplisit menentukan format ISO 9660, tambahkan baris berikut ke file /etc/nova/nova.conf
:
config_drive_format=iso9660
Secara default, Anda tidak dapat menghubungkan image drive konfigurasi sebagai drive CD bukan sebagai disk drive. Untuk menghubungkan CD drive, tambahkan baris berikut ke file /etc/nova/nova.conf
:
config_drive_cdrom=true
Untuk alasan warisan (legacy), Anda dapat mengkonfigurasi drive konfigurasi untuk menggunakan format VFAT bukan ISO 9660. Hal ini tidak mungkin bahwa Anda akan memerlukan Format VFAT karena ISO 9660 secara luas didukung di sistem operasi. Namun, untuk menggunakan format VFAT, tambahkan baris berikut ke file /etc/nova/nova.conf
:
config_drive_format=vfat
Jika Anda memilih VFAT, drive konfigurasi adalah 64 MB.
Catatan
Dalam versi saat ini (Liberty) dari OpenStack Compute, migrasi hidup dengan config_drive
pada disk lokal dilarang karena bug di libvirt menyalin disk read-only. Namun, jika kita menggunakan VFAT sebagai format config_drive
, fungsi migrasi hidup bekerja dengan baik.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.