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¶
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 koleksilib32
. Untuk menyertakan koleksiports
, tambahkan lagi 1 GB. Untuk menyertakansrc
, tambahkan 512 MB.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
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¶
Untuk menginstal sistem operasi, lakukan langkah berikut dalam VM:
Bila diminta, pilih untuk menjalankan ISO dalam mode Install.
Terima keymap standar atau pilih pemetaan yang sesuai untuk kebutuhan Anda.
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.Ketika diminta tentang komponen sistem opsional
doc
,games
,lib32
,ports
, dansrc
, 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 mendukungdoc
,games
, danlib32
inklusif. Koleksiports
memerlukan setidaknya 1 GB ruang tambahan dan mungkin lebih jika Anda berencana untuk menginstal banyak port. Koleksisrc
membutuhkan tambahan 512 MB.Lakukan konfigurasi antarmuka jaringan utama untuk menggunakan DHCP. Dalam contoh ini, contoh menggunakan perangkat jaringan virtio, antarmuka ini bernama
vtnet0
.Terima network mirror default.
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: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.
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:
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.
Pilih password root.
Pilih zona waktu CMOS.
CMOS virtual hampir selalu menyimpan waktu dalam UTC, jadi kalau Anda ragu, pilih UTC.
Pilih zona waktu yang sesuai dengan lingkungan Anda.
Dari daftar layanan untuk memulai boot, Anda harus memilih ssh. Secara opsional, pilih layanan lainnya.
Secra opsional, tambahkan pengguna.
Anda tidak perlu menambahkan pengguna saat ini. Program
bsd-cloudinit
menambahkan akun penggunafreebsd
jika salah satu tidak ada. Kuncissh
untuk pengguna ini berhubungan dengan OpenStack. Untuk menyesuaikan akun pengguna ini, Anda dapat membuat sekarang. Misalnya, Anda mungkin ingin menyesuaikan (customize) shell untuk pengguna.Config akhir
Menu ini memungkinkan Anda untuk memperbarui pengaturan sebelumnya. Periksa apakah pengaturan sudah benar, dan klik exit.
Setelah Anda keluar, Anda dapat membuka shell untuk menyelesaikan langkah konfigurasi manual. Pilih Yes untuk membuat beberapa perubahan OpenStack-spesific:
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.
Meminimalkan booting delay:
# echo 'autoboot_delay="1"' >> /boot/loader.conf
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
Jalankan installer:
# sh ./installer.sh
Keluarkan perintah ini untuk men-download dan menginstal paket
bsd-cloudinit
terbaru, dan menginstal prasyarat yang diperlukan.Install
sudo
dan mengkonfigurasi penggunafreebsd
untuk memiliki akses passwordless:# pkg install sudo # echo 'freebsd ALL=(ALL) NOPASSWD: ALL' > /usr/local/etc/sudoers.d/10-cloudinit
Matikan sistem:
# shutdown -h now