GNU/Linux >> Belajar Linux >  >> Linux

Cara Menggunakan Vagrant Dengan Penyedia Libvirt KVM

Secara default, Vagrant menggunakan Oracle VirtualBox sebagai penyedia. Jika lebih dari satu penyedia diinstal (Misalnya Virtualbox dan Libvirt) di sistem Anda, itu akan selalu memulai VM dengan Virtualbox kecuali Anda secara eksplisit menyediakan penyedia tertentu. Dalam panduan singkat ini, mari kita lihat cara menggunakan Vagrant dengan penyedia Libvirt KVM di Linux.

Gelang bukan penyedia virtualisasi yang berdiri sendiri. Itu bergantung pada penyedia virtualisasi lain seperti Virtualbox, Libvirt/KVM, Docker, VMWare untuk membuat dan menjalankan mesin virtual.

Salah satu fitur hebat Vagrant adalah pengguna tidak pernah terikat pada platform virtualisasi tertentu. Pengguna dapat membuat alur kerja yang bekerja dengan beberapa penyedia virtualisasi.

Saat ini, Vagrant mendukung lebih dari 30 penyedia. Anda dapat melihat daftar lengkap penyedia yang didukung di sini .

1. Instal KVM di Linux

Pertama, Anda perlu menginstal KVM di sistem Linux Anda. Kami telah mendokumentasikan langkah-langkah instalasi KVM untuk sistem berbasis DEB dan sistem berbasis RPM. Cukup ikuti tautan untuk menginstal KVM pada distribusi Linux pilihan Anda.

  • Instal Dan Konfigurasi KVM Di Server CentOS 8
  • Instal Dan Konfigurasi KVM Di Server Tanpa Kepala Ubuntu 20.04
  • Instal Dan Konfigurasi KVM Di OpenSUSE Tumbleweed

2. Instal plugin vagrant-libvirt di Linux

Untuk menjalankan mesin virtual Vagrant di KVM, Anda perlu menginstal vagrant-libvirt pengaya. Plugin ini menambahkan penyedia Libvirt ke Vagrant dan memungkinkan Vagrant untuk mengontrol dan menyediakan mesin melalui Libvirt.

Instal dependensi yang diperlukan untuk vagrant-libvirt pengaya.

Di Ubuntu:

$ sudo apt install qemu libvirt-daemon-system libvirt-clients libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev ruby-libvirt ebtables dnsmasq-base

Di CentOS, Fedora:

$ sudo dnf install gcc libvirt libvirt-devel libxml2-devel make ruby-devel

Sekarang, instal vagrant-libvirt plugin menggunakan perintah:

$ vagrant plugin install vagrant-libvirt

Anda juga perlu menginstal vagrant-mutate plugin yang mengubah kotak gelandangan untuk bekerja dengan penyedia yang berbeda.

$ vagrant plugin install vagrant-mutate

3. Gunakan Vagrant Dengan Penyedia KVM Libvirt

3.1. Pastikan kotak Vagrant yang ingin Anda gunakan mendukung penyedia libvirt. Untuk menemukan kotak gelandangan yang didukung oleh libvirt, cukup pilih "libvirt" pilihan di repositori Vagrant Cloud.

Untuk tujuan panduan ini, saya akan menggunakan kotak CentOS 7.

3.2. Buka direktori proyek Vagrant Anda dan inisialisasi lingkungan Vagrant:

$ vagrant init centos/7

3.3. Selanjutnya, jalankan perintah berikut untuk memulai mesin virtual:

$ vagrant up --provider=libvirt

Di sini, --provider=libvirt option secara eksplisit memberitahu Vagrant untuk menggunakan libvirt KVM untuk menjalankan mesin virtual. Artinya - KVM bertindak sebagai penyedia default di sini.

Contoh keluaran:

Bringing machine 'default' up with 'libvirt' provider...
==> default: Box 'centos/7' could not be found. Attempting to find and install...
    default: Box Provider: libvirt
    default: Box Version: >= 0
==> default: Loading metadata for box 'centos/7'
    default: URL: https://vagrantcloud.com/centos/7
==> default: Adding box 'centos/7' (v2004.01) for provider: libvirt
    default: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/libvirt.box
Download redirected to host: cloud.centos.org
    default: Calculating and comparing box checksum...
==> default: Successfully added box 'centos/7' (v2004.01) for 'libvirt'!
==> default: Uploading base box image as volume into Libvirt storage...
==> default: Creating image (snapshot of base box volume).
==> default: Creating domain with the following settings...
==> default:  -- Name:              myvagrants_default
==> default:  -- Domain type:       kvm
==> default:  -- Cpus:              1
==> default:  -- Feature:           acpi
==> default:  -- Feature:           apic
==> default:  -- Feature:           pae
==> default:  -- Memory:            512M
==> default:  -- Management MAC:    
==> default:  -- Loader:            
==> default:  -- Nvram:             
==> default:  -- Base box:          centos/7
==> default:  -- Storage pool:      default
==> default:  -- Image:             /var/lib/libvirt/images/myvagrants_default.img (41G)
==> default:  -- Volume Cache:      default
==> default:  -- Kernel:            
==> default:  -- Initrd:            
==> default:  -- Graphics Type:     vnc
==> default:  -- Graphics Port:     -1
==> default:  -- Graphics IP:       127.0.0.1
==> default:  -- Graphics Password: Not defined
==> default:  -- Video Type:        cirrus
==> default:  -- Video VRAM:        9216
==> default:  -- Sound Type:	
==> default:  -- Keymap:            en-us
==> default:  -- TPM Path:          
==> default:  -- INPUT:             type=mouse, bus=ps2
==> default: Creating shared folders metadata...
==> default: Starting domain.
==> default: Waiting for domain to get an IP address...
==> default: Waiting for SSH to become available...
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default: 
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Rsyncing folder: /home/sk/myvagrants/ => /vagrant

Seperti yang Anda lihat di baris pertama dari output di atas, Vagrant menggunakan penyedia "libvirt" untuk meluncurkan VM CentOS 7.

3.4. Atau Anda dapat memberi tahu Vagrant untuk menggunakan libvirt sebagai penyedia default secara permanen dengan menambahkan variabel lingkungan berikut.

export VAGRANT_DEFAULT_PROVIDER=libvirt

4. Verifikasi apakah VM berjalan di Libvirt KVM

4.1. Anda dapat memverifikasi apakah CentOS 7 VM benar-benar berjalan di penyedia KVM Libvirt dari Virsh antarmuka baris perintah.

$ virsh list

Contoh keluaran:

 Id   Name                 State
------------------------------------
 2    myvagrants_default   running

Atau, gunakan vagrant status perintah:

$ vagrant status

4.2. Anda juga dapat memverifikasinya dari aplikasi GUI manajemen KVM seperti Manajer Virt .

5. Pemecahan masalah

Jika kotak Vagrant lain sudah menggunakan penyedia yang berbeda (misalnya virtualbox), Anda akan melihat pesan kesalahan berikut saat mencoba memulai VM baru:

$ vagrant up --provider libvirt
An active machine was found with a different provider. Vagrant
currently allows each machine to be brought up with only a single
provider at a time. A future version will remove this limitation.
Until then, please destroy the existing machine to up with a new
provider.

Machine name: default
Active provider: virtualbox
Requested provider: libvirt

Seperti yang dinyatakan dalam output di atas, Vagrant dapat menjalankan VM hanya dengan satu penyedia dalam satu waktu. Batasan ini mungkin dapat diselesaikan di versi mendatang.

Sebelum menjalankan VM lain dengan penyedia yang berbeda, hapus terlebih dahulu mesin aktif yang ada menggunakan perintah:

$ vagrant destroy 

Ketik "y" dan tekan ENTER untuk menghapus mesin default yang aktif:

    default: Are you sure you want to destroy the 'default' VM? [y/N] y
==> default: Destroying VM and associated drives...

Sekarang mulai VM dengan penyedia baru yaitu KVM dalam hal ini:

$ vagrant up --provider libvirt

6. Kesimpulan

Dalam panduan ini, kami belajar cara menggunakan Vagrant dengan penyedia libvirt KVM di Linux. Kami juga melihat cara memverifikasi apakah mesin virtual berjalan di Libvirt KVM.


Linux
  1. Bagaimana saya menggunakan Vagrant dengan libvirt

  2. Cara menggunakan ekspor dengan Python di Linux

  3. Cara menggunakan memori bersama dengan Linux di C

  1. Cara Menggunakan Perintah ethtool dengan Contoh

  2. Bagaimana cara menggunakan regex dengan perintah find?

  3. Cara menggunakan perintah `subproses` dengan pipa

  1. Cara Menggunakan Perintah IP di Linux dengan Contoh

  2. Perintah alias Linux:Cara Menggunakannya Dengan Contoh

  3. cara menggunakan python2.7 pip bukan default pip