Pembuat virt adalah alat baris perintah untuk membangun berbagai gambar mesin virtual untuk penggunaan lokal atau cloud, dengan mudah dan juga cepat. Ini juga memiliki banyak opsi untuk menyesuaikan gambar. Anda dapat menginstal aplikasi baru pada image VM, mengatur nama host, mengatur kata sandi root, menjalankan perintah atau skrip saat VM tamu melakukan booting untuk pertama kalinya, menambah atau mengedit file dalam image disk, dan banyak lagi. Semua tugas ini dapat dilakukan dari baris perintah dan tidak memerlukan izin root.
Virt-builder mengunduh template OS yang disiapkan dengan rapi dan ditandatangani secara digital, jadi Anda tidak perlu menginstal OS secara manual. Yang harus Anda lakukan hanyalah menggunakan Manajer Virt GUI atau Instal Virt alat baris perintah untuk langsung menjalankan VM dengan template yang telah ditentukan. Virt-builder menyediakan template OS minimal untuk varian Linux dan Unix yang populer. Anda tentu saja dapat membuat template Anda sendiri juga.
Instal pembuat Virt di Linux
Virt-builder adalah bagian dari library Libguestfs, jadi pastikan Anda telah menginstalnya seperti yang dijelaskan dalam panduan berikut.
- Mengakses Dan Memodifikasi Gambar Disk Mesin Virtual Dengan Libguestfs
Bangun Gambar Mesin Virtual Dengan Pembuat Virt
Membuat image mesin virtual dengan Virt-builder cukup mudah dan mudah.
Mencantumkan template mesin virtual yang tersedia
Pertama, buat daftar template OS yang tersedia. Untuk melakukannya, jalankan:
$ virt-builder --list
Saat menulis panduan ini, template berikut telah tersedia:
centos-6 x86_64 CentOS 6.6centos-7.0 x86_64 CentOS 7.0centos-7.1 x86_64 CentOS 7.1centos-7.2 aarch64 CentOS 7.2 (aarch64)centos-7.2 x86_64 CentOS 7.2centos-7.3 x86_64 CentOS 7.3centos-7.4 x86_64 CentOS CentOS 7.5 x86_64 CentOS 7.5centos-7.6 x86_64 CentOS 7.6centos-7.7 x86_64 CentOS 7.7centos-7.8 x86_64 CentOS 7.8centos-8.0 x86_64 CentOS 8.0centos-8.2 x86_64 CentOS 8.2cirros-0.3.1 x86_64 CirrOS 0.3.1x86_64 CirrOS 0.3.1cirros 0.3.5debian-10 x86_64 Debian 10 (buster)debian-6 x86_64 Debian 6 (Squeeze)debian-7 sparc64 Debian 7 (Wheezy) (sparc64)debian-7 x86_64 Debian 7 (wheezy)debian-8 x86_64 Debian 8 (jessie) debian-9 x86_64 Debian 9 (peregangan)fedora-26 aarch64 Fedora® 26 Server (aarch64)fedora-26 armv7l Fedora® 26 Server (armv7l)fedora-26 i686 Fedora® 26 Server (i686)fedora-26 ppc64 Fedora® 26 Server (ppc64) fedora-26 ppc64le Fedora® 26 Server (ppc64le)fedora-26 x86_64 Fedora® 26 Serverfedora-27 aarch64 Fedora® 27 Server (aarch64)fedora-27 armv7l Fedora® 27 Server (armv7l)fedora-27 i686 Fedora® 27 Server (i686 )fedora-27 ppc64 Fedora® 27 Server (ppc64)fedora-27 ppc64le Fedora® 27 Server (ppc64le)fedora-27 x86_64 Fedora® 27 Serverfedora-28 i686 Fedora® 28 Server (i686)fedora-28 x86_64 Fedora® 28 Serverfedora- 29 aarch64 Fedora® 29 Server (aarch64)fedora-29 i686 Fedora® 29 Server (i686) fedora-29 ppc64le Fedora® 29 Server (ppc64le)fedora-29 x86_64 Fedora® 29 Serverfedora-30 aarch64 Fedora® 30 Server (aarch64)fedora-30 i686 Fedora® 30 Server (i686)fedora-30 x86_64 Fedora® 30 Serverfedora-31 x86_64 Fedora® 31 Serverfedora-32 x86_64 Fedora® 32 Serverfreebsd-11.1 x86_64 FreeBSD 11.1scientificlinux-6 x86_64 Scientific Linux 6.5ubuntu-10.04 x86_64 Ubuntu 10.04 (Lucid)ubuntu-12.04 x86_64 Ubuntu 12.04 (Precise)ubuntu-14.04 x86_64 Ubuntu 14.04 (Trusty) )ubuntu-16.04 x86_64 Ubuntu 16.04 (Xenial)ubuntu-18.04 x86_64 Ubuntu 18.04 (bionic)fedora-18 x86_64 Fedora® 18fedora-19 x86_64 Fedora® 19fedora-20 x86_64 Fedora® 20fedora-21 aarch64 Fedora® 21 Server (aarch64)fedora- 21 armv7l Fedora® 21 Server (armv7l)fedora-21 ppc64 Fedora® 21 Server (ppc64)fedora-21 ppc64le Fedora® 21 Server (ppc64le)fedora-21 x86_64 Fedora® 21 Serverfedora-22 aarch64 Fedora® 22 Server (aarch64)fedora- 22 armv7l Fedora® 22 Server (armv7l)fedora-22 i686 Fedora® 22 Server (i686)fedora-22 x86_64 Fedora® 22 Serverfedora-23 aarch64 Fedora® 23 Server (aarch64)fedora-23 armv7l Fedora® 23 Server (armv7l)fedora -23 i686 Fedora® 23 Server (i686)fedora-23 ppc64 Fedora® 23 Server (ppc64)fedora-23 ppc64le Fedora® 23 Server (ppc64le)fedora-23 x86_64 Fedora® 23 Serverfedora-24 aarch64 Fedora® 24 Server (aarch64) fedora-24 armv7l Fedora® 24 Server (armv7l)fedora-24 i686 Fedora® 24 S erver (i686)fedora-24 x86_64 Fedora® 24 Serverfedora-25 aarch64 Fedora® 25 Server (aarch64)fedora-25 armv7l Fedora® 25 Server (armv7l)fedora-25 i686 Fedora® 25 Server (i686)fedora-25 ppc64 Fedora® 25 Server (ppc64)fedora-25 ppc64le Fedora® 25 Server (ppc64le)fedora-25 x86_64 Fedora® 25 Serveropensuse-13.1 x86_64 openSUSE 13.1opensuse-13.2 x86_64 openSUSE 13.2opensuse-42.1 x86_64 openSUSE Leap 42.1opensuse-tumbleweed x86_64 openSUSE pra>Daftar mesin virtual yang tersedia menggunakan Virt-builder
Seperti yang Anda lihat, ada beberapa template OS yang tersedia.
Sebelum membuat image mesin virtual, Anda mungkin ingin melihat catatan penginstalan OS tamu untuk mengetahui apa yang ada di dalamnya.
Misalnya, untuk melihat catatan penginstalan Debian 10, jalankan:
$ virt-builder --notes debian-10Contoh keluaran:
Debian 10 (buster)Ini adalah instalasi Debian minimal. Gambar ini sangat minim sehingga hanya menyertakan server ssh Gambar ini tidak berisi kunci host SSH. Untuk membuatnya kembali gunakan:--firstboot-command "dpkg-reconfigure openssh-server"Template ini dibuat oleh skrip di pohon sumber libguestfs:builder/templates/make-template.mlFile terkait yang digunakan untuk menyiapkan template ini dapat ditemukan di direktori yang sama.Membuat image mesin virtual
Saya ingin mengunduh template OS di direktori tertentu, jadi saya membuat direktori ini:
$ mkdir virtbuilder$ cd virtbuilder/Mari kita membangun mesin virtual Debian 10 menggunakan perintah:
$ virt-builder debian-10Contoh keluaran:
[ 4.8] Mengunduh:http://builder.libguestfs.org/debian-10.xz###################################### ############################################################# ######## 100.0%[ 83.2] Merencanakan cara membuat gambar ini[ 83.2] Tidak mengompresi[ 101.2] Membuka disk baru[ 119.8] Menyetel pembuat seedvirt acak:peringatan:benih acak tidak dapat disetel untuk ini tipe tamu[ 119.9] Menyetel kata sandi pembuat virt:Menyetel kata sandi acak root ke 66xW1CaIqfM8km2v [ 121.5] Menyelesaikan File Output:debian-10.img Ukuran keluaran:6.0G Format keluaran:mentah Total ruang yang dapat digunakan:5,8G Ruang kosong:4,9G (84%)Bangun image mesin virtual dengan pembuat virt di Linux
Seperti yang Anda lihat, perintah ini telah membuat image Debian 10 minimal. Itu tidak akan memiliki akun pengguna. Itu hanya akan memiliki kata sandi root acak dan perangkat lunak yang diinstal minimal.
Nama keluaran gambar harus sama dengan nama template. Anda dapat mengubahnya sesuai keinginan Anda menggunakan -o pilihan:
$ virt-builder debian-10 -o ostechnix.imgSecara default, format gambar adalah img . Anda dapat mengubahnya ke format yang berbeda, misalnya Qcow2, seperti di bawah ini:
$ virt-builder debian-10 --format qcow2Secara default, Virt-builder akan membangun image yang sama dengan arsitektur OS host. Misalnya, jika OS host Anda 64-bit, maka VM 64-bit akan dibuat. Anda dapat mengubahnya menjadi 32-bit (jika tersedia) menggunakan --arch pilihan.
$ virt-builder debian-10 --arch i686Ingin membuat gambar ukuran khusus? Hal ini juga mungkin. Perintah berikut akan membangun VM dengan ukuran 50 GB:
$ virt-builder debian-10 --size 50GOS tamu diubah ukurannya secara otomatis menggunakan virt-resize perintah saat disalin ke output.
Setel kata sandi root
Seperti yang telah saya sebutkan, kata sandi acak akan diberikan ke akun pengguna root saat membangun gambar. Jika Anda ingin menyetel sandi khusus untuk pengguna root, gunakan --root-password pilihan seperti di bawah ini:
$ virt-builder centos-8.2 --format qcow2 --root-password password:centosContoh keluaran:
[ 5.1] Mengunduh:http://builder.libguestfs.org/centos-8.2.xz################################ ############################################################# ######## 100.0%[ 249.2] Merencanakan cara membuat gambar ini[ 249.2] Tidak mengompresi[ 271.3] Mengonversi mentah ke qcow2[ 281.1] Membuka disk baru[ 319.9] Menyetel benih acak[ 320.4] Menyetel kata sandi[ 323.0] Menyelesaikan File keluaran:centos-8.2.qcow2 Ukuran keluaran:6.0G Format keluaran:qcow2 Total ruang yang dapat digunakan:5.3G Ruang kosong:4.0G (74%)Perintah di atas akan membuat image CentOS 8.2 dan menetapkan kata sandi untuk pengguna root sebagai "centos" .
Anda juga dapat mengatur kata sandi dari file teks:
$ virt-builder centos-8.2 --root-password file:~/ostechnix.txtUntuk menonaktifkan kata sandi root, jalankan:
$ virt-builder centos-8.2 --root-password dinonaktifkanKunci akun root:
$ virt-builder centos-8.2 --root-password terkunciKunci akun root dan nonaktifkan kata sandi root:
$ virt-builder centos-8.2 --root-password terkunci:disabledUntuk menetapkan kata sandi root, tetapi mengunci akun root, gunakan opsi berikut:
--root-password terkunci:file:FILENAME--root-password terkunci:sandi:PASSWORDKita dapat menggunakan kata sandi root setelah membuka kunci pengguna root dengan "passwd -u" perintah.
Buat pengguna
Untuk membuat akun pengguna sambil membangun image mesin virtual, jalankan:
$ virt-builder centos-8.2 --firstboot-command 'useradd -m -p "" sk; chage -d 0 sk'Perintah di atas akan membuat pengguna bernama "sk" tanpa kata sandi dan memaksanya untuk mengatur kata sandi pada login pertamanya.
Setel nama host
Untuk menyetel nama host ke VM:
$ virt-builder centos-8.2 --hostname virt.ostechnix.localContoh keluaran:
[ 4.7] Mengunduh:http://builder.libguestfs.org/centos-8.2.xz[ 7.2] Merencanakan cara membuat gambar ini[ 7.2] Tidak mengompresi[ 31.0] Membuka disk baru[ 41.9] Mengatur seed acak [ 42.0] Menyetel nama host:virt.ostechnix.local [ 42.1] Menyetel kata sandivirt-builder:Mengatur kata sandi acak root ke MRn7fj1GSaeCAHQx[ 44.4] Menyelesaikan File keluaran:centos-8.2.img Ukuran keluaran:6.0G Format keluaran:mentah Total ruang yang dapat digunakan:5.3G Ruang kosong:4.0G (74 %)Instal perangkat lunak pada gambar VM
Untuk menginstal paket pada VM, jalankan:
$ virt-builder debian-10 --install vimContoh keluaran:
[ 5.8] Mengunduh:http://builder.libguestfs.org/debian-10.xz[ 7.4] Merencanakan cara membuat image ini[ 7.4] Membuka kompresi[ 25.3] Membuka disk baru[ 29.7] Mengatur seedvirt acak -builder:warning:random seed tidak dapat disetel untuk jenis tamu ini[ 29.8] Memasang paket:vim [ 93.2] Mengatur passwordsvirt-builder:Mengatur kata sandi root secara acak ke 45Hj5yxh8vRqLDcu[ 94.9] Menyelesaikan File keluaran:debian-10.img Ukuran keluaran:6.0G Format keluaran:mentah Total ruang yang dapat digunakan:5.8G Ruang kosong:4.8G (82 %)Untuk menginstal beberapa paket, sebutkan dalam tanda kutip, dengan dipisahkan koma seperti di bawah ini:
$ virt-builder debian-10 --install "apache2,htop"Perbarui semua paket di VM:
$ virt-builder centos-8.2 --updateJika VM Anda menggunakan SELinux, Anda perlu melakukan pelabelan ulang SELinux setelah menginstal atau memperbarui paket:
$ virt-builder centos-8.2 --update --selinux-relabelSesuaikan gambar VM
Virt-builder memiliki banyak opsi untuk menyesuaikan gambar. Misalnya, Anda dapat menjalankan perintah/skrip tertentu saat pertama kali VM melakukan booting menggunakan perintah:
$ virt-builder debian-10 --firstboot-command 'apt -y update'Untuk menambahkan baris di VM, jalankan:
$ virt-builder centos-8.2 --append-line '/etc/hosts:192.168.225.1 server.ostechnix.local'Template cache
Secara default, semua template akan diunduh dari jaringan untuk pertama kalinya. Karena ukuran template besar, template yang diunduh akan di-cache di direktori home pengguna.
Anda dapat mencetak rincian direktori cache dan template mana yang saat ini di-cache menggunakan perintah berikut:
$ virt-builder --print-cacheContoh keluaran:
direktori cache:/home/sk/.cache/virt-builder[...]centos-7.8 x86_64 nocentos-8.0 x86_64 tidakcentos-8.2 x86_64 di-cache cirros-0.3.1 x86_64 nocirros-0.3.5 x86_64 tidak adadebian-10 x86_64 yang di-cache debian-6 x86_64 nodebian-7 sparc64 no[...]Anda juga dapat memverifikasinya dengan mencari secara manual di folder cache:
$ ls $HOME/.cache/virt-builder centos-8.2.x86_64.1 debian-10.x86_64.1Untuk mengunduh semua template yang tersedia ke folder cache lokal Anda, jalankan:
$ virt-builder --cache-all-templatesJika Anda tidak ingin men-cache template saat membuat gambar, gunakan --no-cache pilihan.
Untuk menghapus semua template yang di-cache, jalankan:
$ virt-builder --delete-cache [ 0.0] Menghapus:/home/sk/.cache/virt-builderMengimpor gambar disk ke hypervisor
Nah, Anda telah mengunduh OS yang Anda inginkan dan menyesuaikannya sesuai keinginan Anda. Sekarang apa? Cukup impor gambar dan jalankan VM menggunakan gambar disk yang baru dibuat dengan hypervisor. Kami telah menulis panduan langkah demi langkah untuk membuat mesin virtual KVM menggunakan gambar Qcow2. Panduan ini ditulis khusus untuk Qcow2, namun sama untuk mengimpor .img memformat gambar disk juga.
- Membuat Mesin Virtual KVM Menggunakan Gambar Qcow2 Di Linux
Virt-builder memiliki ratusan perintah dan opsi. Saya hanya membahas perintah dasar di sini. Untuk detail lebih lanjut, lihat usia manual.
$ man virt-builder
Foto Unggulan oleh Igor Starkov dari Pexels .