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.