GNU/Linux >> Linux Esercitazione >  >> Linux

Tutorial Vagrant – Introduzione a Vagrant in Linux

In questo tutorial di Vagrant impareremo su Vagrant, vagrant box, vagrantfile, strumenti di provisioning, come installare vagrant su sistemi operativi Linux e infine apprenderemo alcuni comandi base di vagrant per creare e gestire macchine virtuali dalla riga di comando.

1. Introduzione a Vagrant

Vagabondo è un software open source per la creazione e la manutenzione di ambienti di sviluppo software virtuali. Fornisce un ambiente di sviluppo pulito, facile da configurare, riproducibile e portatile. In altre parole, Vagrant ci consente di implementare facilmente e rapidamente un ambiente di sviluppo software universale che può essere utilizzato ovunque. Vagrant elimina semplicemente la scusa "lavora sulla mia macchina". Perché tutti lavorano sullo stesso ambiente con lo stesso set di configurazione. Non importa quale sistema operativo stiano utilizzando.

Vagrant viene spesso utilizzato per configurare un ambiente di lavoro identico e collaborativo per consentire agli sviluppatori di lavorare su un progetto comune. Isola tutte le dipendenze richieste e le relative impostazioni di configurazione in un unico ambiente usa e getta. Quando gli altri sviluppatori creano un ambiente di sviluppo con lo stesso file di configurazione, otterranno lo stesso ambiente con le stesse impostazioni.

Vagrant è un'applicazione multipiattaforma scritta in Ruby linguaggio. Supporta GNU/Linux, Mac OS e Microsoft Windows. È sviluppato da Hashicorp e rilasciato sotto MIT licenza.

1.1. Scatole vagabondi

La "scatola" è un formato e un'estensione per gli ambienti Vagrant. Le scatole del vagabondo sono solo le immagini di base. Possono essere un'immagine Virtualbox o un'immagine VMware o l'immagine di un provider cloud come Amazon Machine Image (AMI). Possiamo copiare le scatole dei vagabondi su qualsiasi altro sistema e impostare una replica esatta dello sviluppo attuale.

Ci sono molte scatole Vagrant preconfigurate disponibili per il download in Vagrant Cloud archivio pubblico. Se non vuoi utilizzare un box preconfigurato, creane uno a tuo piacimento e distribuiscilo a tutti tramite questo repository.

1.2. Vagrantfile

I requisiti del sistema operativo e del software sono definiti in un file di configurazione denominato "vagrantfile". Questo file è distribuito insieme alle scatole Vagrant. Quando inizializzi una VM con Vagrant, leggerà questo file e configurerà il tuo ambiente di sviluppo di conseguenza. Quindi, lo scopo effettivo di un vagrantfile è descrivere il tipo di macchina virtuale e come configurare ed eseguire il provisioning delle VM.

I seguenti dettagli sono definiti in un tipico vagrantfile:

  • Versione del sistema operativo Ad es. Ubuntu bionico.
  • Abilita/disabilita il controllo automatico dell'aggiornamento delle caselle.
  • Configurazione di rete;
    • port forwarding,
    • configurare una rete privata (accesso solo host alla macchina),
    • configurare la rete pubblica (rete a ponte).
  • Condividi cartelle con la macchina virtuale guest.
  • Imposta il provider preferito Ad es. virtualbox, kvm.
  • Definisci la quantità totale di memoria per la VM.
  • Abilita il provisioning con script di shell o strumenti di gestione della configurazione come Ansible.

1.3. Strumenti di fornitura

Vagrant non è una piattaforma di virtualizzazione autonoma come KVM o Virtualbox. È solo un wrapper e un front-end che si trova tra un software di virtualizzazione e una macchina virtuale. Vagrant utilizza vari fornitori di servizi e strumenti di provisioning per creare e gestire gli ambienti di sviluppo.

Le macchine virtuali sono basate su applicazioni di virtualizzazione popolari come VirtualBox, KVM, Docker, VMware ecc. e provider di servizi cloud come AWS, Azure, GCE e molti altri. Puoi visualizzare l'elenco completo dei fornitori supportati qui . Vagrant viene fornito immediatamente con il supporto per VirtualBox, Hyper-V e Docker. VirtualBox è il provider predefinito per Vagrant.

Una volta creata la macchina virtuale, possiamo installare il software su di essa utilizzando semplici script di shell e strumenti di gestione della configurazione standard del settore come Ansible, CFEngine, Chef, Docker, Podman, Puppet e Salt ecc. Gli utenti possono anche personalizzare la configurazione di ambienti virtuali secondo le loro esigenze utilizzando gli strumenti di provisioning.

In poche parole, i provider (ad es. VirtualBox, AWS) vengono utilizzati per creare un ambiente virtuale e i provider (ad es. Ansible, Puppet) vengono utilizzati per personalizzare gli ambienti virtuali.

2. Installa Vagrant su Linux

L'installazione di Vagrant è incredibilmente facile e diretta. Basta scaricare l'ultima versione dalla pagina di download di Vagrant e installarla utilizzando la procedura standard per i propri sistemi operativi. Per sapere come installare Vagrant su varie piattaforme Linux, fare riferimento al seguente link.

  • Come installare Vagrant su Linux

3. Tutorial Vagrant - Comandi base di Vagrant per creare e gestire macchine virtuali

Qui, ho fornito esempi solo per i comandi Vagrant di base di cui abbiamo bisogno per configurare e gestire uno sviluppo virtualizzato. Per conoscere l'utilizzo completo di Vagrant, fare riferimento alla documentazione ufficiale fornita alla fine.

3.1. Crea directory di progetto Vagrant

Innanzitutto, dobbiamo creare una directory di progetto.

Creerò una directory chiamata myvagrants per il mio ambiente virtuale:

$ mkdir myvagrants

Cd in quella directory per creare e archiviare macchine virtuali:

$ cd myvagrants

3.2. Inizializza l'ambiente Vagrant

Inizializza l'ambiente Vagrant usando il seguente comando:

$ vagrant init hashicorp/bionic64

Risultato di esempio:

A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

Il comando precedente inizializza la directory corrente come ambiente Vagrant predefinito e crea un file Vagrant di base.

Puoi visualizzare il contenuto del file vagrant appena creato utilizzando cat comanda e conosci i dettagli della macchina virtuale che stai per costruire:

$ cat Vagrantfile | less

Quando avvii la VM nei passaggi successivi, scaricherà il box bionico di Ubuntu pubblicato da HashiCorp. Il team di Vagrant consiglia inoltre di utilizzare le scatole Bento . Sono open source e creati per provider popolari come Virtualbox, VMWare e Parallels. HashiCorp e Bento sono gli unici due cofanetti ufficialmente raccomandati.

3.3. Avvia la macchina virtuale

Ora crea e avvia la macchina virtuale in base al file vagrant (che abbiamo creato nel passaggio precedente) usando il comando:

$ vagrant up

Risultato di esempio:

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'hashicorp/bionic64' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'hashicorp/bionic64'
    default: URL: https://vagrantcloud.com/hashicorp/bionic64
==> default: Adding box 'hashicorp/bionic64' (v1.0.282) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/hashicorp/boxes/bionic64/versions/1.0.282/providers/virtualbox.box
Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com
==> default: Successfully added box 'hashicorp/bionic64' (v1.0.282) for 'virtualbox'!
==> default: Importing base box 'hashicorp/bionic64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'hashicorp/bionic64' version '1.0.282' is up to date...
==> default: Setting the name of the VM: myvagrants_default_1597837509450_67666
Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:

  https://www.virtualbox.org/manual/ch04.html#sharedfolders

This option can be disabled globally with an environment variable:

  VAGRANT_DISABLE_VBOXSYMLINKCREATE=1

or on a per folder basis within the Vagrantfile:

  config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection reset. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    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: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default: 
    default: Guest Additions Version: 6.0.10
    default: VirtualBox Version: 6.1
==> default: Mounting shared folders...
    default: /vagrant => /home/sk/myvagrants

Il comando precedente scaricherà la scatola bionica di Ubuntu dal cloud Vagrant, creerà una nuova macchina virtuale denominata "myvagrants_default_1597837509450_67666" , aggiungilo a Virtualbox e avvia automaticamente la VM.

Non vedrai alcuna notifica anche se la macchina virtuale è in esecuzione. Per verificare se la VM è in esecuzione, apri l'applicazione di virtualizzazione (es. VirtualBox o Virt-manager) e controlla se la VM è in esecuzione o meno.

Poiché Vagrant utilizza Virtualbox come provider predefinito, posso vedere la VM in esecuzione dal gestore virtualbox.

Come puoi vedere, la VM bionica di Ubuntu è in esecuzione in Virtualbox.

Se utilizzi un altro provider, ad esempio Virt-manager, aprilo e controlla se la macchina Vagrant è in esecuzione.

3.4. Accedi alle macchine virtuali

Puoi connetterti e accedere alle VM in esecuzione utilizzando SSH.

Per SSH nella casella Vagrant in esecuzione usando il comando, esegui:

$ vagrant ssh

Risultato di esempio:

Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-58-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Wed Aug 24 11:56:42 UTC 2020

  System load:  0.08              Processes:           88
  Usage of /:   2.5% of 61.80GB   Users logged in:     0
  Memory usage: 11%               IP address for eth0: 10.0.2.15
  Swap usage:   0%

 * Are you ready for Kubernetes 1.19? It's nearly here! Try RC3 with
   sudo snap install microk8s --channel=1.19/candidate --classic

   https://microk8s.io/ has docs and details.

0 packages can be updated.
0 updates are security updates.


[email protected]:~$ 

3.5. Sincronizza i file locali e guest

Sincronizzazione dei file di supporto Vagrant pronta all'uso. Per impostazione predefinita, Vagrant condivide la directory del tuo progetto (quella contenente il file Vagrant. Nel mio caso, è ~/myvagrants .) al /vagrant directory nella tua macchina virtuale guest.

Puoi verificarlo elencando i contenuti di /vagrant directory nella tua macchina virtuale:

[email protected]:~$ ls /vagrant/
Vagrantfile

Tieni presente che il Vagrantfile che vedi all'interno della macchina virtuale è in realtà lo stesso Vagrantfile che si trova sulla tua vera macchina host.

Per verificare se la sincronizzazione funziona effettivamente, crea un file di esempio in /vagrant directory nella tua macchina guest:

[email protected]:~$ touch /vagrant/test.txt

Esci dalla sessione SSH della tua VM:

[email protected]:~$ logout

Ora controlla la directory del tuo progetto locale nel tuo sistema host. Vedrai che lo stesso file è stato creato anche sulla macchina host.

[email protected]:~/myvagrants$ ls
test.txt Vagrantfile

3.6. Visualizza lo stato delle macchine virtuali

Per visualizzare lo stato di una macchina virtuale in un ambiente virtuale, eseguire:

$ vagrant status

Risultato di esempio:

Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

Come vedi sopra, ho solo una VM e ora è in esecuzione.

Se la VM è spenta, verrà visualizzato il seguente output:

Current machine states:

default                   poweroff (virtualbox)

The VM is powered off. To restart the VM, simply run `vagrant up`

3.7. Visualizza lo stato di tutti gli ambienti virtuali

Possiamo visualizzare le informazioni su tutti gli ambienti virtuali conosciuti sul nostro sistema usando il seguente comando:

$ vagrant global-status

Risultato di esempio:

id       name    provider   state    directory                           
-------------------------------------------------------------------------
2086482  default virtualbox poweroff /home/sk/myvagrants                 
 
The above shows information about all known Vagrant environments
on this machine. This data is cached and may not be completely
up-to-date (use "vagrant global-status --prune" to prune invalid
entries). To interact with any of the machines, you can go to that
directory and run Vagrant, or you can use the ID directly with
Vagrant commands from any directory. For example:
"vagrant destroy 1a2b3c4d"

Il comando precedente elencherà l'ID della VM, il nome, il provider, lo stato della VM e la directory dell'ambiente virtuale.

A volte l'output potrebbe essere memorizzato nella cache e potrebbe non essere corretto. Quindi, esegui il comando seguente per rimuovere le voci non valide e ottenere lo stato aggiornato dell'ambiente virtuale:

$ vagrant global-status --prune

3.8. Sospendere le macchine virtuali

Per sospendere una macchina virtuale in esecuzione, esegui:

$ vagrant suspend

Risultato di esempio:

==> default: Saving VM state and suspending execution…

3.9. Riprendi le macchine virtuali

Per ripristinare una macchina virtuale sospesa nell'ambiente virtuale corrente, eseguire:

$ vagrant resume

Risultato di esempio:

==> default: Resuming suspended VM...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

3.10. Riavvia le macchine virtuali

Per riavviare una macchina virtuale in esecuzione, procedere come segue:

$ vagrant reload

Questo comando arresterà la macchina virtuale e la riavvierà.

3.11. Arresta/Spegni le macchine virtuali

Per arrestare o arrestare una VM in esecuzione, procedere come segue:

$ vagrant halt

3.12. Elimina macchine virtuali

Per interrompere ed eliminare tutte le tracce di una macchina virtuale, eseguire:

$ vagrant destroy

Digita y e premi INVIO per eliminare la macchina virtuale.

Se vuoi eliminare la VM senza alcuna conferma, esegui:

$ vagrant destroy -f

3.13. Ripristina macchine virtuali

A volte, potresti voler ripristinare la tua macchina virtuale al suo stato originale, senza eliminare effettivamente la casella. Questo può essere utile per distribuire un ambiente virtuale pulito senza dover scaricare ripetutamente una scatola vagante.

Per ripristinare una macchina virtuale al suo stato originale, fai semplicemente:

$ vagrant destroy
$ vagrant up

Il primo comando arresterà la macchina virtuale in esecuzione ed eliminerà tutte le risorse ad essa associate. E il secondo comando ricreerà una nuova macchina virtuale usando la casella vagabondo esistente.

Per maggiori dettagli, fare riferimento al seguente link:

  • Come ripristinare la macchina virtuale Vagrant allo stato originale

3.14. Esegui i comandi Vagrant da qualsiasi directory

Di solito, avviamo, fermiamo, ricarichiamo ed eliminiamo una macchina Vagrant dalla directory del suo progetto, giusto? Sì! Tuttavia, possiamo eseguire i comandi Vagrant da qualsiasi directory utilizzando l'ID della macchina Vagrant.

Per trovare l'ID della macchina Vagrant, esegui il seguente comando:

$ vagrant global-status

Risultato di esempio:

id       name    provider state   directory                           
----------------------------------------------------------------------
ddc1a10  default libvirt shutoff /home/sk/Vagrant/Ubuntu2004         
f4904ad  default libvirt shutoff /home/sk/Vagrant/Archlinux          
831f9c0  default libvirt shutoff /home/sk/Vagrant/Gentoo             
3587422  default libvirt shutoff /home/sk/Vagrant/Rhel8              
b2279ad  default libvirt shutoff /home/sk/Vagrant/Almalinux8         
 
The above shows information about all known Vagrant environments
on this machine. This data is cached and may not be completely
up-to-date (use "vagrant global-status --prune" to prune invalid
entries). To interact with any of the machines, you can go to that
directory and run Vagrant, or you can use the ID directly with
Vagrant commands from any directory. For example:
"vagrant destroy 1a2b3c4d"

Come puoi vedere nell'output sopra, vagrant global-status comando mostra i dettagli di tutti gli ambienti virtuali conosciuti nel mio sistema. La prima colonna nell'output sopra mostra l'ID di ogni macchina Vagrant.

Puoi utilizzare l'ID direttamente con i comandi Vagrant da qualsiasi directory. Ad esempio, per avviare una macchina Vagrant da qualsiasi directory, possiamo semplicemente utilizzare:

$ vagrant up b2279ad

Questo avvierà la macchina vagabondo che ID b2279ad .

Allo stesso modo, possiamo usare anche altri comandi Vagrant.

$ vagrant status b2279ad
$ vagrant ssh b2279ad
$ vagrant halt b2279ad
$ vagrant destroy b2279ad

3.15. Elenca le caselle Vagrant

Per elencare tutte le caselle disponibili installate con Vagrant, esegui:

$ vagrant box list

Risultato di esempio:

hashicorp/bionic64 (virtualbox, 1.0.282)

Se desideri visualizzare alcuni dettagli aggiuntivi della casella come nome dell'autore, sito Web, repository, descrizione ecc., utilizza -i bandiera:

$ vagrant box list -i

Risultato di esempio:

generic/alpine38    (virtualbox, 3.1.16)
  - Author: Ladar Levison
  - Website: https://roboxes.org/
  - Artifacts: https://vagrantcloud.com/generic/
  - Repository: https://github.com/lavabit/robox/
  - Description: Basic virtual machine images, for a variety of operating systems/hypervisors, and ready to serve as base bxoes.

3.16. Controlla se una casella Vagrant è obsoleta

Per verificare se la casella che stai utilizzando nel tuo ambiente vagrant è obsoleta, vai all'ambiente Vagrant, ovvero la directory del progetto,

$ cd myvagrants/

ed esegui:

$ vagrant box outdated
Checking if box 'hashicorp/bionic64' version '1.0.282' is up to date…

3.17. Aggiorna le caselle Vagrant

Se ci sono caselle obsolete, puoi aggiornarle come di seguito:

$ vagrant box update

Risultato di esempio:

==> default: Checking for updates to 'hashicorp/bionic64'
default: Latest installed version: 1.0.282
default: Version constraints:
default: Provider: virtualbox
==> default: Box 'hashicorp/bionic64' (v1.0.282) is running the latest version.

3.18. Scarica le scatole Vagrant

L'vagrant init il comando inizializza e avvia l'ambiente Vagrant scaricando la rispettiva casella Vagrant definita nel Vagrantfile.

Puoi anche scaricare manualmente la casella Vagrant e modificarne il file vagrant e quindi avviarlo.

Per scaricare un box Vagrant, esegui:

$ vagrant box add bento/debian-10.5

Il comando precedente scaricherà la versione Debian 10.5 pubblicata da Bento. Ti verrà chiesto di scegliere il provider (es. virtualbox o vmware) che stai attualmente utilizzando. Basta sceglierne uno e premere INVIO per scaricare la casella.

Risultato di esempio:

==> box: Loading metadata for box 'bento/debian-10.5'
    box: URL: https://vagrantcloud.com/bento/debian-10.5
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) parallels
2) virtualbox
3) vmware_desktop

Enter your choice: 2
==> box: Adding box 'bento/debian-10.5' (v202008.16.0) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/bento/boxes/debian-10.5/versions/202008.16.0/providers/virtualbox.box
Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com
==> box: Successfully added box 'bento/debian-10.5' (v202008.16.0) for 'virtualbox'

Puoi verificarlo elencando le caselle disponibili:

$ vagrant box list

Risultato di esempio:

bento/debian-10.5 (virtualbox, 202008.16.0)
hashicorp/bionic64 (virtualbox, 1.0.282)

Tutti i box Vagrant scaricati saranno disponibili in ~/.vagrant.d/boxes directory nel tuo sistema host.

3.19. Visualizza le dimensioni delle scatole Vagrant

Come indicato nella sezione precedente, le scatole Vagrant scaricate sono archiviate in ~/.vagrant.d/boxes directory.

Puoi visualizzare l'elenco di tutte le scatole scaricate in questa directory usando il comando:

$ ls ~/.vagrant.d/boxes
almalinux-VAGRANTSLASH-8          generic-VAGRANTSLASH-debian10
archlinux-VAGRANTSLASH-archlinux  generic-VAGRANTSLASH-gentoo
centos-VAGRANTSLASH-8             generic-VAGRANTSLASH-rhel8

Per trovare le dimensioni delle singole scatole Vagrant, usa du comando con -h segnala come di seguito:

589M	/home/sk/.vagrant.d/boxes/archlinux-VAGRANTSLASH-archlinux/20210601.24453/libvirt
589M	/home/sk/.vagrant.d/boxes/archlinux-VAGRANTSLASH-archlinux/20210601.24453
589M	/home/sk/.vagrant.d/boxes/archlinux-VAGRANTSLASH-archlinux
1.1G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-rhel8/3.3.2/libvirt
1.1G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-rhel8/3.3.2
1.1G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-rhel8
1.6G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-gentoo/3.2.24/libvirt
1.6G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-gentoo/3.2.24
1.6G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-gentoo
1.6G	/home/sk/.vagrant.d/boxes/centos-VAGRANTSLASH-8/2011.0/libvirt
1.6G	/home/sk/.vagrant.d/boxes/centos-VAGRANTSLASH-8/2011.0
1.6G	/home/sk/.vagrant.d/boxes/centos-VAGRANTSLASH-8
998M	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-debian10/3.3.4/libvirt
998M	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-debian10/3.3.4
998M	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-debian10
628M	/home/sk/.vagrant.d/boxes/almalinux-VAGRANTSLASH-8/8.4.20210724/libvirt
628M	/home/sk/.vagrant.d/boxes/almalinux-VAGRANTSLASH-8/8.4.20210724
629M	/home/sk/.vagrant.d/boxes/almalinux-VAGRANTSLASH-8
6.4G	/home/sk/.vagrant.d/boxes

Per visualizzare l'utilizzo del riepilogo totale, eseguire:

$ du -sh ~/.vagrant.d/boxes
6.4G	/home/sk/.vagrant.d/boxes

3.20. Aggiungi il file .box scaricato a Vagrant

Molte distribuzioni Linux sono distribuite tramite box Vagrant preconfigurati. Quindi puoi prendere rapidamente la scatola del vagabondo ed eseguirla utilizzando la rispettiva applicazione di virtualizzazione. Per maggiori dettagli, fare riferimento alla seguente guida:

  • Come aggiungere il file .box scaricato a Vagrant in Linux

3.21. Crea una macchina virtuale usando Vagrant box

Per creare una nuova VM con il box appena scaricato, vai nella directory del tuo progetto e inizializza l'ambiente vagrant con il comando:

$ vagrant init

Avviso :Elimina il file Vagrant esistente prima di inizializzare un nuovo ambiente Vagrant.

Questo creerà un nuovo Vagrantfile nella directory corrente.

Modifica il file Vagrant e aggiorna i dettagli della VM e sostituisci la seguente riga:

Vagrant.configure("2") do |config|
[...]
config.vm.box = "base"
[...]

con quanto segue:

config.vm.box = "bento/debian-10.5"

Puoi specificare in modo esplicito la versione per la nuova VM aggiungendo le seguenti righe:

config.vm.box = "bento/debian-10.5"
config.vm.box_version = "1.0"

Puoi anche specificare l'URL di download:

config.vm.box = "bento/debian-10.5"
config.vm.box_version = "1.0"
config.vm.box_url = "https://app.vagrantup.com/bento/boxes/debian-10.5/"

Ora crea e avvia la VM basata su questo Vagrantfile con il comando:

$ vagrant up

In alternativa, puoi menzionare direttamente il nome della casella durante l'inizializzazione dell'ambiente Vagrant. Questo può essere utile se hai più di una casella vagabondo.

Per prima cosa, elenca le caselle vagabonde disponibili usando il comando:

$ vagrant box list 

Risultato di esempio:

Fedora33            (libvirt, 0)
archlinux/archlinux (virtualbox, 20201201.10292)
fedora33            (virtualbox, 0)
generic/alpine38    (virtualbox, 3.1.16)
oraclelinux/7       (virtualbox, 7.9.184)
oraclelinux/8       (libvirt, 8.3.183)

Lascia che tu voglia creare una macchina virtuale da una casella denominata "generic/alpine38". Per farlo, esegui semplicemente:

$ vagrant init generic/alpine38

Questo comando creerà un nuovo Vagrantfile e inizializzerà l'ambiente Vagrant con una determinata configurazione della casella. Non è necessario modificare manualmente Vagrantfile e aggiornare i dettagli della casella.

Quindi, avvia la macchina virtuale usando il comando:

$ vagrant up

3.22. Usa Vagrant con il provider KVM Libvirt

Come ho già affermato, Vagrant utilizza Virtualbox per eseguire macchine virtuali per impostazione predefinita. È anche possibile dire a Vagrant di utilizzare un altro provider, ad esempio Libvirt KVM , per eseguire VM usando vagrant-libvirt collegare. Questo plugin aggiunge il provider Libvirt a Vagrant e consente a Vagrant di controllare e fornire macchine tramite Libvirt. Per informazioni su come utilizzare libvirt come provider Vagrant, fare riferimento alla seguente guida:

  • Come utilizzare Vagrant con il provider KVM Libvirt

3.23. Configura la rete in Vagrant

Per fornire l'accesso alla rete tra le macchine ospiti e il sistema host, Vagrant offre le seguenti tre opzioni:

  1. Port forwarding
  2. Rete privata (rete solo host)
  3. Rete pubblica (rete con bridge)

Ogni opzione ha i suoi alti e bassi. Puoi configurare una o tutte le opzioni di rete Vagrant come descritto nella seguente guida:

  • Come configurare la rete in Vagrant

3.24. Trova l'indirizzo IP della macchina Vagrant dal sistema host

Per trovare l'indirizzo IP di una macchina Vagrant, di solito ci inseriamo e troviamo il suo indirizzo IP usando ip o ifconfig comandi. Possiamo anche ottenere direttamente dall'host l'indirizzo IP di una macchina Vagrant in esecuzione, come descritto nel seguente link:

  • Come trovare l'indirizzo IP della macchina Vagrant dall'host

3.25. Aumenta la memoria e la CPU sulla macchina Vagrant

Hai problemi di prestazioni con la tua macchina Vagrant? Probabilmente è a causa di memoria o CPU insufficienti. Aggiungi semplicemente più RAM e core CPU alla macchina Vagrant per migliorarne le prestazioni, come mostrato nel seguente link.

  • Come aumentare la memoria e la CPU su una macchina Vagrant

3.26. Rimuovi le scatole Vagrant obsolete

Potresti aver scaricato diverse versioni di scatole Vagrant e alcune di esse potrebbero essere piuttosto obsolete! Se non sono più necessari, puoi tranquillamente eliminare le vecchie versioni delle scatole Vagrant installate come descritto nel seguente link.

  • Come eliminare le scatole di vagabondi obsolete in Linux

3.27. Elimina definitivamente le caselle Vagrant

Per rimuovere una scatola vagabondo, ad esempio hashicorp/bionic64, esegui:

$ vagrant box remove hashicorp/bionic64

Digita y e premi ENTER per confermare l'eliminazione:

Box 'hashicorp/bionic64' (v1.0.282) with provider 'virtualbox' appears
to still be in use by at least one Vagrant environment. Removing
the box could corrupt the environment. We recommend destroying
these environments first:

default (ID: 20864823c72f45568d251070b5ce2661)

Are you sure you want to remove this box? [y/N] y
Removing box 'hashicorp/bionic64' (v1.0.282) with provider 'virtualbox'…

Se non conosci il nome della casella, esegui il seguente comando per elencare tutte le scatole installate:

$ vagrant box list

A questo punto, dovresti aver appreso le basi dell'uso di Vagrant. Vagrant è un argomento vasto e cercherò di coprire il più possibile nei nostri prossimi articoli. Resta sintonizzato!

4. Risoluzione dei problemi Vagrant

Questa sezione affronta alcuni problemi comuni di Vagrant.

4.1. Vagrant non è riuscito a inizializzarsi in una fase molto precoce

La tua macchina Vagrant non si è avviata? Nessun problema! Questo è uno dei problemi più comuni dei vagabondi. Ciò potrebbe essere dovuto a plug-in obsoleti o la directory di Vagrant HOME potrebbe essere stata spostata in una posizione diversa. Per risolvere questo problema, fai riferimento alla seguente guida:

  • Come risolvere l'errore "Vagrant non è riuscito a inizializzarsi in una fase molto precoce" in Linux

4.2. Impossibile accedere al file di archiviazione, autorizzazione negata Errore in KVM Libvirt

A volte, potresti non avviare una macchina Vagrant e finire con un errore simile a questo - Failed to start domain 'Archlinux_default' error: Cannot access storage file '/home/sk/.local/share/libvirt/images/Archlinux_default.img' (as uid:107, gid:107): Permission denied .

Questo errore di solito si verifica quando il qemu l'utente non dispone dell'autorizzazione di lettura per la directory di archiviazione Libvirt. Per risolvere questo problema, fai riferimento alla seguente guida:

  • [Risolto] Impossibile accedere al file di archiviazione, autorizzazione negata Errore in KVM Libvirt

5. Conclusione

In questa guida completa, abbiamo appreso cos'è Vagrant e le terminologie vagrant come vagrant box, vagrantfile e strumenti di approvvigionamento. Abbiamo anche imparato come installare vagrant sui sistemi operativi Linux e infine abbiamo discusso alcuni comandi base di vagrant per creare e gestire macchine virtuali dalla riga di comando in Linux.

Se sei un ingegnere DevOps, sapere come usare Vagrant sarà molto utile. Vagrant è uno degli strumenti importanti che dovresti avere sul tuo sistema.


Linux
  1. Introduzione ai firewall Linux

  2. Iniziare con il comando tac di Linux

  3. Iniziare con PiFlash:avviare il tuo Raspberry Pi su Linux

  4. Iniziare con il comando cat di Linux

  5. Introduzione a SSH in Linux

Introduzione al sistema operativo Linux

Tutorial Docker – Introduzione a Docker in Linux

Introduzione a Docker Compose in Linux

Introduzione a VirtualBox in Linux – Parte 1

Guida introduttiva a Vagrant e VirtualBox – Parte 1

Introduzione a Flutter su desktop Linux