Contoh: image FreeBSD

Contoh ini menciptakan image FreeBSD minimal yang kompatibel dengan OpenStack dan bsd-cloudinit. Program bsd-cloudinit secara independen dipertahankan dan aktif dalam pembangunan. Sumber terbaik informasi tentang keadaan saat ini untuk proyek ini berada di bsd-cloudinit.

KVM dengan driver virtio digunakan sebagai platform virtualisasi karena itu adalah yang paling banyak digunakan di antara operator OpenStack. Jika Anda menggunakan platform yang berbeda untuk virtualisasi cloud Anda, gunakan platform yang sama dalam langkah pembuatan image.

Contoh ini menunjukkan bagaimana untuk membuat image FreeBSD 10. Untuk membuat image FreeBSD 9.2, ikuti langkah-langkah berikut dan perhatikan perbedaan keduanya.

Prerequisites

  1. Buat drive virtual:

    $ qemu-img create -f qcow2 freebsd.qcow2 1G
    

    Ukuran disk minimum dukungan untuk FreeBSD adalah 1 GB. Karena tujuannya adalah untuk membuat image dasar sekecil mungkin, contoh ini menggunakan ukuran minimum itu. Ukuran ini cukup untuk mencakup opsional doc, games, dan koleksi lib32. Untuk menyertakan koleksi ports, tambahkan lagi 1 GB. Untuk menyertakan src, tambahkan 512 MB.

  2. Dapatkan ISO installer:

    $ curl ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/10.1/FreeBSD-10.1-RELEASE-amd64-bootonly.iso \
      > FreeBSD-10.1-RELEASE-amd64-bootonly.iso
    
  3. Luncurkan VM pada workstation lokal Anda. Gunakan hypervisor, disk virtual, dan driver virtual jaringan yang sama dimana Anda gunakan dalam lingkungan produksi Anda.

    Perintah berikut menggunakan jumlah minimum RAM, jumlah itu adalah 256 MB:

    $ kvm -smp 1 -m 256 -cdrom FreeBSD-10.1-RELEASE-amd64-bootonly.iso \
      -drive if=virtio,file=freebsd.qcow2 \
      -net nic,model=virtio -net user
    

    Anda dapat menentukan hingga 1 GB tambahan RAM untuk membuat proses instalasi berjalan lebih cepat.

    VM ini juga harus memiliki akses Internet untuk men-download paket.

    Catatan

    Dengan menggunakan hypervisor yang sama, Anda dapat memastikan bahwa Anda meniru perangkat yang sama dengan yang ada di produksi. Namun, jika Anda menggunakan virtualisasi hardware penuh bukannya paravirtualization, Anda tidak perlu menggunakan hypervisor yang sama; Anda harus menggunakan jenis yang sama dari perangkat keras virtualisasi karena nama perangkat FreeBSD terkait dengan driver mereka. Jika nama perangkat blok akar atau antarmuka jaringan utama dalam produksi berbeda dari nama yang digunakan selama pembuatan image, kesalahan bisa terjadi.

    Anda sekarang memiliki VM yang boot dari ISO install yang didownload dan terhubung ke disk virtual kosong dimana Anda buat sebelumnya.

Installation

  1. Untuk menginstal sistem operasi, lakukan langkah berikut dalam VM:

    1. Bila diminta, pilih untuk menjalankan ISO dalam mode Install.

    2. Terima keymap standar atau pilih pemetaan yang sesuai untuk kebutuhan Anda.

    3. Berikan nama host untuk image Anda. Jika Anda menggunakan bsd-cloudinit, nama ini akan menimpa nilai nama yang diberikan oleh OpenStack ketika sebuah instance boot dari image ini.

    4. Ketika diminta tentang komponen sistem opsional doc, games, lib32, ports, dan src, pilih hanya mereka yang Anda butuhkan. Hal ini dimungkinkan untuk memiliki instalasi berfungsi penuh tanpa memilih komponen tambahan yang dipilih. Seperti dijelaskan sebelumnya, sistem minimal dengan disk virtual 1 GB mendukung doc, games, dan lib32 inklusif. Koleksi ports memerlukan setidaknya 1 GB ruang tambahan dan mungkin lebih jika Anda berencana untuk menginstal banyak port. Koleksi src membutuhkan tambahan 512 MB.

    5. Lakukan konfigurasi antarmuka jaringan utama untuk menggunakan DHCP. Dalam contoh ini, contoh menggunakan perangkat jaringan virtio, antarmuka ini bernama vtnet0.

    6. Terima network mirror default.

    7. Atur partisi disk.

      Partisi disk adalah elemen penting dari proses pembuatan image dan susunan partisi yang auto-generated tidak bekerja dengan bsd-cloudinit saat ini.

      Karena default tidak bekerja, Anda harus memilih partisi manual. Editor partisi hanya mendaftar satu perangkat blok. Jika Anda menggunakan virtio untuk driver perangkat disk, ia dinamai vtbd0. Pilih perangkat ini dan menjalankan perintah tiga kali create:

      1. Pilih Create untuk membuat tabel partisi. Tindakan ini menjadi default bila tidak ada tabel partisi dijumpai. Kemudian, pilih GPT GUID Partition Table dari daftar. Pilihan ini adalah default.

      2. Buat dua partisi:

        • Partisi pertama: Partisi freebsd-boot 64 kB tanpa mount point.

        • Kedua partisi: Partisi `` freebsd-ufs`` dengan mount point dari ``/ `` dengan semua sisa ruang bebas .

      Gambar berikut menunjukkan tabel partisi lengkap dengan disk virtual 1 GB:

      _images/freebsd-partitions.png

      Pilih Finish dan kemudian Commit untuk melakukan perubahan.

      Catatan

      Jika Anda mengubah contoh ini, partisi root, yang dipasang (mounted) di / ``, harus menjadi partisi terakhir pada drive sehingga drive dapat memperluasnya sejalan dengan perluasan disk dimana jenis instance Anda menyediakannya. Juga perhatikan bahwa `` bsd-cloudinit saat ini memiliki asumsi hard-coded dimana partisi root adalah partisi kedua.

  2. Pilih password root.

  3. Pilih zona waktu CMOS.

    CMOS virtual hampir selalu menyimpan waktu dalam UTC, jadi kalau Anda ragu, pilih UTC.

  4. Pilih zona waktu yang sesuai dengan lingkungan Anda.

  5. Dari daftar layanan untuk memulai boot, Anda harus memilih ssh. Secara opsional, pilih layanan lainnya.

  6. Secra opsional, tambahkan pengguna.

    Anda tidak perlu menambahkan pengguna saat ini. Program bsd-cloudinit menambahkan akun pengguna freebsd jika salah satu tidak ada. Kunci ssh untuk pengguna ini berhubungan dengan OpenStack. Untuk menyesuaikan akun pengguna ini, Anda dapat membuat sekarang. Misalnya, Anda mungkin ingin menyesuaikan (customize) shell untuk pengguna.

  7. Config akhir

    Menu ini memungkinkan Anda untuk memperbarui pengaturan sebelumnya. Periksa apakah pengaturan sudah benar, dan klik exit.

  8. Setelah Anda keluar, Anda dapat membuka shell untuk menyelesaikan langkah konfigurasi manual. Pilih Yes untuk membuat beberapa perubahan OpenStack-spesific:

    1. Atur konsol:

      # echo 'console="comconsole,vidconsole"' >> /boot/loader.conf
      

      Pengaturan ini menetapkan keluaran konsol melalui konsol serial, yang ditampilkan oleh nova consolelog, dan konsol video untuk situs dengan VNC atau Spice yang dikonfigurasi.

    2. Meminimalkan booting delay:

      # echo 'autoboot_delay="1"' >> /boot/loader.conf
      
    3. Lakukan download bsd-cloudinit-installer terkini. Perintah download berbeda antara FreeBSD 10.1 dan 9.2 karena perbedaan dalam bagaimana perintah fetch menangani HTTPS URL.

      Dalam FreeBSD 10.1 perintah fetch memverifikasi SSL peer secara default, sehingga Anda perlu menginstal paket ca_root_nss yang berisi certificate authority (CA) root certificates (sertifikat root CA) dan memberitahu fetch dimana menemukan mereka. Untuk FreeBSD 10,1 jalankan perintah ini:

      # pkg install ca_root_nss
      # fetch --ca-cert=/usr/local/share/certs/ca-root-nss.crt \
        https://raw.github.com/pellaeon/bsd-cloudinit-installer/master/installer.sh
      

      FreeBSD 9.2 fetch tidak mendukung peer-verification untuk https. Untuk FreeBSD 9.2, jalankan perintah ini:

      # fetch https://raw.github.com/pellaeon/bsd-cloudinit-installer/master/installer.sh
      
    4. Jalankan installer:

      # sh ./installer.sh
      

      Keluarkan perintah ini untuk men-download dan menginstal paket bsd-cloudinit terbaru, dan menginstal prasyarat yang diperlukan.

    5. Install sudo dan mengkonfigurasi pengguna freebsd untuk memiliki akses passwordless:

      # pkg install sudo
      # echo 'freebsd ALL=(ALL) NOPASSWD: ALL' > /usr/local/etc/sudoers.d/10-cloudinit
      
  9. Matikan sistem:

    # shutdown -h now