Menyimpan metadata pada drive konfigurasi.

Menyimpan metadata pada drive konfigurasi.

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.

Persyaratan dan pedoman

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)

  • Jangan mengandalkan kehadiran metadata EC2 di drive konfigurasi, karena konten ini mungkin dihapus di masa mendatang. Misalnya, tidak bergantung pada file dalam direktori ec2.
  • Bila Anda membuat image yang mengakses drive data konfigurasi dan beberapa direktori berada di bawah direktori 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.

Mengaktifkan dan mengakses drive konfigurasi

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

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

Isi drive konfigurasi

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.

Format metadata OpenStack

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.

Format metadata EC2

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"
    ]
}

Data pengguna (user)

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 drive konfigurasi

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.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.