Adaptacio de virtualBox a vagrant
Adaptar les MVs perquè puguin ser compatibles amb vagrant
El primer que farem serà crear la carpeta del projecte
mkdir vagrant
cd vagrant
vagrant init nombre_box
Exemple del resultat de la comanda.
[12:07:53][~][agarcia@localhost]-$ mkdir rocky_vagrant
cd rocky_vagrant
vagrant init rocky
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.
Ara ja començarem amb el procés , amb aquesta comanda revisarem la llista de màquines que tenim en VirtualBox, per després passar-les a box i afegir-les a les llistes de vagrant.
VBoxManage list vms
Exemple del resultat de la comanda.
[09:36:04][Documents][agarcia@localhost]-$ VBoxManage list vms
"rocky" {6d47e39a-b2d4-4081-9afc-1b33a5e6ee84}
En aquest punt transformarem la MV de VirtualBox a un .box de vagrant, per fer-ho ho farem amb aquesta comanda i canviant el Nom_VM pel nom que ens va donar l’anterior comanda, i on posa nom_box posarem el nom que vulguem per la nostra .box
vagrant package --base "Nom_VM" --output nom_box.box
Exemple del resultat de la comanda.
“Aquest procés pot tardar una mica depèn de la mida de la MV”
[09:36:09][Documents][agarcia@localhost]-$ vagrant package --base "rocky" --output rocky.box
==> rocky: Exporting VM...
==> rocky: Compressing package to: /home/agarcia/Documents/rocky.box
Una vegada creada la .box haurem d’afegir-la a vagant, per fer-ho serà amb aquesta comanda, en nom_box1 posarem el nom de la nostra MV.box anteriorment creada, i en nom_box2 serà el nom el qual és la MV es guardarà per utilitzar-la més endavant (pot ser el mateix nom si vols).
vagrant box add nom_box1 nomb_box2.box Exemple del resultat de la comanda.
[09:50:31][Documents][agarcia@localhost]-$ vagrant box add rocky rocky.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'rocky' (v0) for provider: (amd64)
box: Unpacking necessary files from: file:///home/agarcia/Documents/rocky.box
==> box: Successfully added box 'rocky' (v0) for '(amd64)'!
Ara configurarem l’arxiu vagrant previament crea, dintra d’aquest arxiu es on es configuraran cada MV de vagrant que volguem crear, per configuraro, aurem de estar dintre de la carpeta i executar la seguent comanda
vi Vagrantfile Exemple del resultat de la comanda.
Ara dintre d’aquest arxiu, pegarem aquesta configuració “predeterminada” i canviarem el Nom x pel qual es necessiti.
Vagrant.configure("2") do |config|
config.vm.define "NOMBRE_VM" do |vm1|
vm1.vm.box = "NOMBRE_VM"
vm1.vm.provider "virtualbox" do |vb|
vb.name = "NOMBRE_VM"
vb.memory = "2048"
vb.cpus = 2
end
end Una vegada tot configurat el ultim pas es executar la maquina, que es fara la seguent comanda i ja es obrira la Maquina virtual en virtualbox.
vagrant up nom_mv Exemple del resultat de la comanda.
[08:40:16][test][agarcia@agarcia]-$ vagrant up debian
Bringing machine 'debian' up with 'virtualbox' provider...
==> debian: Importing base box 'debian'...
==> debian: Matching MAC address for NAT networking...
==> debian: Setting the name of the VM: MV_DEBIAN
==> debian: Clearing any previously set network interfaces...
==> debian: Preparing network interfaces based on configuration...
debian: Adapter 1: nat
debian: Adapter 2: bridged
==> debian: Forwarding ports...
debian: 22 (guest) => 2222 (host) (adapter 1)
==> debian: Running 'pre-boot' VM customizations...
==> debian: Booting VM...
==> debian: Waiting for machine to boot. This may take a few minutes...
debian: SSH address: 127.0.0.1:2222
debian: SSH username: vagrant
debian: SSH auth method: private key
debian:
debian: Vagrant insecure key detected. Vagrant will automatically replace
debian: this with a newly generated keypair for better security.
debian:
debian: Inserting generated public key within guest...
debian: Removing insecure key from the guest if it's present...
debian: Key inserted! Disconnecting and reconnecting using new SSH key...
==> debian: Machine booted and ready!
==> debian: Checking for guest additions in VM...
debian: The guest additions on this VM do not match the installed version of
debian: VirtualBox! In most cases this is fine, but in rare cases it can
debian: prevent things such as shared folders from working properly. If you see
debian: shared folder errors, please make sure the guest additions within the
debian: virtual machine match the version of VirtualBox you have installed on
debian: your host and reload your VM.
debian:
debian: Guest Additions Version: 6.0.0 r127566
debian: VirtualBox Version: 7.2
==> debian: Configuring and enabling network interfaces...
==> debian: Mounting shared folders...
debian: /home/agarcia/Documents/test => /vagrant
Instalacio Guess Additions
Abans de poder executar res, hem d’indicar a VirtualBox que insereixi el CD virtual on hi ha els instal·ladors de les Guest Additions.
Això és un pas manual i es fa des de la finestra de la màquina virtual, a la part superior del menú:
Devices → Insert Guest Additions CD image…
Aquesta acció munta un CD virtual dins de la nostra màquina virtual com si haguéssim introduït un CD físic amb els controladors. Aquests controladors ja venen inclosos amb VirtualBox; simplement hem d’indicar que s’insereixin en aquesta màquina virtual.
vagrant@debian:~$ cd /media/cdrom Ara que VirtualBox ha inserit el CD virtual amb els drivers, hem d’entrar a la carpeta on s’ha muntat el disc dins de Debian. Aquí és on es troben els fitxers necessaris per instal·lar les Guest Additions.
Aquest script compila i instal·la els mòduls del kernel perquè la màquina virtual pugui tenir integració completa amb VirtualBox, com ara resolució dinàmica, carpetes compartides i clipboard compartit.
vagrant@debian:/media/cdrom$ sudo sh VBoxLinuxAdditions.run
Després de la instal·lació, els mòduls carregats no s’activen fins que el sistema es reinicia. Amb aquest reinici la màquina virtual ja arrencarà amb les Guest Additions habilitades.
vagrant@debian:/media/cdrom$ sudo reboot
Un cop reiniciada la màquina, ja té les Guest Additions funcionant correctament i la integració amb VirtualBox és completa (resolució automàtica, carpetes compartides i clipboard compartit).