GNU/Linux >> Linux Esercitazione >  >> Linux

Come uso Vagrant con libvirt

Lo ammetto:sono un fan di Linux. Anche se ho usato Slackware sulle workstation e Red Hat Enterprise Linux (RHEL) sui server per anni, mi piace vedere come fanno le altre distribuzioni. Inoltre, mi piace molto testare le applicazioni e gli script che scrivo su altre distribuzioni per garantire la portabilità. In effetti, questo è uno dei grandi vantaggi di Linux, per come lo vedo io:puoi scaricare una distribuzione e testare il tuo software su di essa gratuitamente. Non puoi farlo con un sistema operativo chiuso, almeno non senza rompere un EULA o pagare per giocare, e anche in questo caso, spesso ti iscrivi per scaricare diversi gigabyte solo per testare un'applicazione che non supera poche centinaia megabyte. Ma Linux è open source, quindi raramente c'è una scusa per ignorare almeno le tre o quattro distribuzioni principali, tranne per il fatto che la configurazione di una macchina virtuale può richiedere molti clic e talvolta reti virtuali complesse. Almeno, quella era la scusa fino a quando Vagrant non ha cambiato il flusso di lavoro della macchina virtuale per gli sviluppatori.

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Cos'è Vagrant

Vagrant è un semplice gestore di macchine virtuali per il tuo terminale. Ti consente di estrarre facilmente una macchina virtuale minima e pre-costruita da Internet, eseguirla localmente e SSH in essa in pochi passaggi. È il più veloce che tu abbia mai configurato una macchina virtuale. È l'ideale per gli sviluppatori Web che necessitano di un server Web di prova, i programmatori che devono testare un'applicazione su più distribuzioni e gli hobbisti che amano vedere come funzionano le diverse distribuzioni.

Anche lo stesso Vagrant è relativamente minimo. Non è un framework di virtualizzazione in sé. Gestisce solo le tue macchine virtuali ("box" nella terminologia di Vagrant). Può utilizzare VirtualBox o, tramite un plug-in, il progetto libvirt leggero come backend.

Cos'è libvirt

Il progetto libvirt è un toolkit progettato per gestire la virtualizzazione, con supporto per KVM, QEMU, LXC e altro. Potresti pensarla come una sorta di API della macchina virtuale, che consente agli sviluppatori di scrivere applicazioni amichevoli che rendono facile per gli utenti orchestrare la virtualizzazione tramite libvirt. Uso libvirt come backend per Vagrant perché è utile in diverse applicazioni, inclusi virt-manager e GNOME Boxes.

Installazione di Vagrant

Puoi installare Vagrant da vagrantup.com/downloads. Sono disponibili build per sistemi basati su Debian, sistemi basati su CentOS, macOS, Windows e altro.

Per CentOS, Fedora o simili, ottieni un pacchetto RPM, che puoi installare con dnf :

$ sudo dnf install ./vagrant_X.Y.ZZ_x86_64.rpm

Su Debian, Linux Mint, Elementary e simili, ottieni un pacchetto DEB, che puoi installare con apt :

$ sudo apt install ./vagrant_X.Y.ZZ_x86_64.deb

Installazione di libvirt e pacchetti di supporto

Su Linux, la tua distribuzione potrebbe già avere libvirt installato, ma per abilitare l'integrazione con Vagrant hai bisogno anche di alcuni altri pacchetti. Installali con il tuo gestore di pacchetti.

Su Fedora, CentOS e simili:

$ sudo dnf install gcc libvirt \
libvirt-devel libxml2-devel \
make ruby-devel libguestfs-tools

Su Debian, Linux Mint e simili:

$ sudo apt install build-dep vagrant ruby-libvirt \
qemu libvirt-daemon-system libvirt-clients ebtables \
dnsmasq-base libxslt-dev libxml2-dev libvirt-dev \
zlib1g-dev ruby-dev libguestfs-tools

A seconda della tua distribuzione, potresti dover avviare libvirt demone:

$ sudo systemctl start libvirtd

Installazione del plugin Vagrant-libvirt

In Vagrant, libvirt è abilitato tramite un plug-in. Vagrant semplifica l'installazione di un plug-in, quindi il tuo primo comando Vagrant è uno che eseguirai raramente di nuovo:

$ vagrant plugin install vagrant-libvirt

Ora che il plug-in libvirt è installato, puoi iniziare a usare le macchine virtuali.

Configurazione del tuo ambiente Vagrant

Per iniziare con Vagrant, crea una directory chiamata ~/Vagrant . Qui è dove i tuoi Vagrantfiles vengono memorizzati.

$ mkdir ~/Vagrant

In questa directory, crea una sottodirectory per rappresentare una distribuzione che desideri scaricare. Ad esempio, supponi di aver bisogno di una casella di prova CentOS.

Crea una directory CentOS, quindi passa ad essa:

$ mkdir ~/Vagrant/centos
$ cd ~/Vagrant/centos

Ora devi trovare una macchina virtuale in modo da poter convertire la directory che hai appena creato in un ambiente Vagrant.

Trovare una macchina virtuale Vagrant

In generale, le scatole di Vagrant provengono da tre luoghi diversi:Hashicorp (i manutentori di Vagrant), i manutentori delle distribuzioni e persone come te e me. Alcune immagini sono minime, destinate a fungere da base per la personalizzazione. Al contrario, altri cercano di risolvere un'esigenza specifica (ad esempio, potresti trovare un'immagine stack LAMP pronta per lo sviluppo web). Puoi trovare le immagini sfogliando o cercando scatole nell'hub principale app.vagrantup.com/boxes/search.

Per questo esempio, cerca "centos" e trova la voce denominata generic/centos8 . Fare clic sull'immagine per istruzioni su come utilizzare la macchina virtuale. Le istruzioni sono di due tipi: 

  • Il codice che ti serve per un Vagrantfile
  • Il comando che ti serve per usare la scatola da un terminale

Quest'ultimo è il metodo più semplice:

$ vagrant init generic/centos8

Il init il sottocomando crea un file di configurazione, chiamato Vagrantfile, nella directory corrente, che trasforma quella directory in un ambiente Vagrant. In qualsiasi momento, puoi visualizzare un elenco di ambienti Vagrant conosciuti utilizzando lo global-status sottocomando:

$ vagrant global-status
id       name    provider state   directory
-------------------------------------------
49c797f  default libvirt running /home/tux/Vagrant/centos8

Avvio di una macchina virtuale con Vagrant

Dopo aver eseguito init comando, puoi avviare la tua macchina virtuale con vagrant up :

$ vagrant up

Ciò fa sì che Vagrant scarichi l'immagine della macchina virtuale se non esiste già in locale, configuri una rete virtuale e configuri la tua casella.

Inserimento di una macchina virtuale Vagrant 

Una volta che la tua macchina virtuale è attiva e funzionante, puoi accedervi con vagrant ssh :

$ vagrant ssh
box$

Ti connetti alla scatola in esecuzione nel tuo attuale ambiente Vagrant. Una volta effettuato l'accesso, puoi eseguire tutti i comandi nativi di quell'host. È una macchina virtuale che esegue il proprio kernel, con hardware emulato e software Linux comune.

Lasciare una macchina virtuale Vagrant

Per uscire dalla tua macchina virtuale Vagrant, esci dall'host come normalmente esci da un computer Linux:

box$ exit

In alternativa, puoi spegnere la macchina virtuale:

box$ sudo poweroff

Puoi anche fermare il funzionamento della macchina usando il vagrant comando:

box$ vagrant halt

Distruggere una macchina virtuale Vagrant

Quando hai finito con una macchina virtuale Vagrant, puoi distruggerla:

$ vagrant destroy

In alternativa, puoi rimuovere una macchina virtuale utilizzando la box globale sottocomando:

$ vagrant box remove generic/centos8

Il vagabondo è facile

Vagrant rende le macchine virtuali banali, usa e getta e veloci. Quando hai bisogno di un ambiente di test o di un server falso su cui eseguire il ping o lo sviluppo, o un computer di laboratorio pulito per la sperimentazione o il monitoraggio, puoi ottenerne uno con Vagrant. Alcune persone pensano che le macchine virtuali non siano rilevanti ora che i container hanno preso il controllo dei server, ma le macchine virtuali hanno caratteristiche uniche che le rendono utili. Eseguono il proprio kernel, hanno uno stack completo e univoco separato dalla macchina host e utilizzano hardware emulato. Quando una macchina virtuale è ciò di cui hai bisogno, Vagrant potrebbe essere il modo migliore per ottenerla.


Linux
  1. Come utilizzare il comando Hexdump di Linux con esempi pratici

  2. Come usare il comando Su in Linux

  3. Comando SCP in Linux:come usarlo, con esempi

  4. Come utilizzare il comando Rmmod su Linux con esempi

  5. Come eliminare un utilizzo non root con UID 0 in Linux

Come utilizzare il comando who in Linux con esempi

Comando alias Linux:come usarlo con esempi

Come utilizzare il comando gunzip di Linux con esempi

Come utilizzare il comando Linux rm con esempi

Come utilizzare Vagrant con il provider KVM Libvirt

Come utilizzare il comando Sleep in Linux:spiegato con esempi