GNU/Linux >> Belajar Linux >  >> Linux

Bangun Gambar Mesin Virtual dengan Cepat Dengan Pembuat Virt

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-10

Contoh 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-10

Contoh 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.img

Secara default, format gambar adalah img . Anda dapat mengubahnya ke format yang berbeda, misalnya Qcow2, seperti di bawah ini:

$ virt-builder debian-10 --format qcow2

Secara 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 i686

Ingin membuat gambar ukuran khusus? Hal ini juga mungkin. Perintah berikut akan membangun VM dengan ukuran 50 GB:

$ virt-builder debian-10 --size 50G

OS 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:centos 

Contoh 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.txt 

Untuk menonaktifkan kata sandi root, jalankan:

$ virt-builder centos-8.2 --root-password dinonaktifkan 

Kunci akun root:

$ virt-builder centos-8.2 --root-password terkunci 

Kunci akun root dan nonaktifkan kata sandi root:

$ virt-builder centos-8.2 --root-password terkunci:disabled 

Untuk menetapkan kata sandi root, tetapi mengunci akun root, gunakan opsi berikut:

--root-password terkunci:file:FILENAME--root-password terkunci:sandi:PASSWORD

Kita 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.local

Contoh 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 vim

Contoh 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 --update

Jika VM Anda menggunakan SELinux, Anda perlu melakukan pelabelan ulang SELinux setelah menginstal atau memperbarui paket:

$ virt-builder centos-8.2 --update --selinux-relabel

Sesuaikan 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-cache

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

Untuk mengunduh semua template yang tersedia ke folder cache lokal Anda, jalankan:

$ virt-builder --cache-all-templates

Jika 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-builder

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


Linux
  1. Virtualisasi di PC, Dijelaskan untuk Pemula dengan Kasus Penggunaan Praktis

  2. Mesin Virtual dengan CentOS 5 32-Bit OS Tidak Mengatasi Memori Fisik Lebih dari 3 GB

  3. Mesin Virtual Mingguan, dengan Skrip Build

  1. Jalankan mesin virtual Linux di Podman

  2. Pratinjau gambar dengan ngx_http_image_filter_module

  3. Server relai SSH dengan OpenSSH

  1. Pengantar Manajer Mesin Virtual

  2. Linux – Terkandung Dalam Alamat Ini?

  3. Menjalankan ArcGIS Desktop di mesin virtual?