GNU/Linux >> Znalost Linux >  >> Linux

Jak používat Vagrant s Libvirt KVM Provider

Ve výchozím nastavení používá Vagrant jako poskytovatele Oracle VirtualBox. Pokud je ve vašem systému nainstalováno více než jeden poskytovatel (např. Virtualbox a Libvirt), vždy se spustí virtuální počítač s Virtualboxem, pokud výslovně neposkytnete konkrétního poskytovatele. V tomto krátkém průvodci se podíváme, jak používat Vagrant s poskytovatelem Libvirt KVM na Linuxu.

Vagrant není samostatným poskytovatelem virtualizace. Při vytváření a spouštění virtuálních strojů se spoléhá na další poskytovatele virtualizace, jako je Virtualbox, Libvirt/KVM, Docker, VMWare.

Jednou ze skvělých vlastností Vagrant je, že uživatelé nejsou nikdy vázáni na konkrétní virtualizační platformu. Uživatelé mohou vytvářet pracovní postupy, které spolupracují s více poskytovateli virtualizace.

V současné době Vagrant podporuje více než 30 poskytovatelů. Úplný seznam podporovaných poskytovatelů si můžete prohlédnout zde .

1. Nainstalujte KVM na Linux

Nejprve musíte nainstalovat KVM na váš systém Linux. Již jsme zdokumentovali kroky instalace KVM pro systémy založené na DEB a systémy založené na RPM. Jednoduše postupujte podle odkazů a nainstalujte KVM do vaší preferované distribuce Linuxu.

  • Nainstalujte a nakonfigurujte KVM na serveru CentOS 8
  • Instalace a konfigurace KVM v Ubuntu 20.04 Headless Server
  • Nainstalujte a nakonfigurujte KVM v OpenSUSE Tumbleweed

2. Nainstalujte plugin vagrant-libvirt v Linuxu

Chcete-li spustit virtuální počítače Vagrant na KVM, musíte nainstalovat vagrant-libvirt zapojit. Tento plugin přidává poskytovatele Libvirt do Vagrantu a umožňuje Vagrantu ovládat a zajišťovat stroje přes Libvirt.

Nainstalujte potřebné závislosti pro vagrant-libvirt plugin.

Na 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

Na CentOS, Fedora:

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

Nyní nainstalujte vagrant-libvirt plugin pomocí příkazu:

$ vagrant plugin install vagrant-libvirt

Je také potřeba nainstalovat vagrant-mutate plugin, který převádí vagrant boxy pro práci s různými poskytovateli.

$ vagrant plugin install vagrant-mutate

3. Použijte Vagrant s poskytovatelem Libvirt KVM

3.1. Ujistěte se, že box Vagrant, který chcete použít, podporuje poskytovatele libvirt. Chcete-li objevit vagrant boxy podporované libvirt, stačí vybrat "libvirt" možnost v úložišti Vagrant Cloud.

Pro účely této příručky budu používat CentOS 7 box.

3.2. Přejděte do adresáře projektu Vagrant a inicializujte prostředí Vagrant:

$ vagrant init centos/7

3.3. Dále spusťte následující příkaz pro spuštění virtuálního počítače:

$ vagrant up --provider=libvirt

Zde --provider=libvirt volba výslovně říká Vagrantovi, aby ke spuštění virtuálního stroje použil libvirt KVM. Význam - KVM zde funguje jako výchozí poskytovatel.

Ukázkový výstup:

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

Jak můžete vidět na prvním řádku výše uvedeného výstupu, Vagrant používá poskytovatele „libvirt“ ke spuštění virtuálního počítače CentOS 7.

3.4. Případně můžete říci Vagrant, aby trvale používal libvirt jako výchozího poskytovatele přidáním následující proměnné prostředí.

export VAGRANT_DEFAULT_PROVIDER=libvirt

4. Ověřte, zda VM běží v Libvirt KVM

4.1. Zda virtuální počítač CentOS 7 skutečně běží, můžete ověřit u poskytovatele Libvirt KVM od Virsh rozhraní příkazového řádku.

$ virsh list

Ukázkový výstup:

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

Nebo použijte vagrant status příkaz:

$ vagrant status

4.2. Můžete to také ověřit z aplikací GUI pro správu KVM, jako je Virt-manager .

5. Odstraňování problémů

Pokud jiný box Vagrant již používá jiného poskytovatele (např. virtualbox), při pokusu o spuštění nového virtuálního počítače se zobrazí následující chybová zpráva:

$ 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

Jak je uvedeno ve výše uvedeném výstupu, Vagrant může současně provozovat virtuální počítač pouze s jedním poskytovatelem. Toto omezení může být vyřešeno v budoucí verzi.

Před spuštěním dalšího virtuálního počítače s jiným poskytovatelem nejprve odstraňte stávající aktivní počítač pomocí příkazu:

$ vagrant destroy 

Napište "y" a stiskněte ENTER pro smazání výchozího aktivního počítače:

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

Nyní spusťte virtuální počítač s novým poskytovatelem, tj. v tomto případě KVM:

$ vagrant up --provider libvirt

6. Závěr

V této příručce jsme se naučili používat Vagrant s poskytovatelem KVM libvirt v Linuxu. Podívali jsme se také na to, jak ověřit, zda virtuální stroj běží v Libvirt KVM.


Linux
  1. Jak používat export s Pythonem na Linuxu

  2. Jak používat regex s příkazem find?

  3. jak používat python2.7 pip místo výchozího pipu

  1. Jak používám Vagrant s libvirt

  2. Jak používat příkaz ethtool s příklady

  3. Jak používat sdílenou paměť s Linuxem v C

  1. Jak používat příkaz IP v Linuxu s příklady

  2. Linux alias Command:Jak jej používat s příklady

  3. Jak používat příkaz `subprocess` s rourami