Una Vagrant box és la imatge base a partir de la qual crearem les nostres VMs. Anem a veure com crear-ne una de pròpia.
Una Vagrant box sol ser un arxiu comprimit amb tar i gzip que consta de:
box.img : la imatge del disc dur a guardar. Sol estar en formats com qcow2 per a libvirtmetadata.json : dades de la VM a crear. Sol tenir una estructura tipus:{ "provider": "libvirt", "format": "qcow2", "virtual_size": 10 // mida del disc en GB }
Vagrantfile : un Vagrantfile de mostra per a l'usuari.Referències:
Crear la VM amb el virtualitzador desitjat (libvirt, VirtualBox, etc.)
Localitzar la imatge de disc desitjada. A libvirt sol estar a /var/lib/libvirt/images/.
Copiar la imatge en una carpeta de treball amb el nom box.img.
Consultar les dades de la imatge de disc (en particular ens interessa la mida del disc virtual size):
$ qemu-img info box.img
image: box.img
file format: qcow2
virtual size: 40 GiB (42949672960 bytes)
disk size: 1.52 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: true
refcount bits: 16
corrupt: false
extended l2: false
Child node '/file':
filename: box.img
protocol type: file
file length: 40 GiB (42956488704 bytes)
disk size: 1.52 GiB
Crear arxiu metatada.json i aplicar la virtual size (la mida total del disc, no la ocupada):
{ "provider": "libvirt", "format": "qcow2", "virtual_size": 40 }
Afegir el Vagrantfile, per ex:
Vagrant.configure("2") do |config| # appliance pfsense config.vm.define :pfsense , primary:true do |pfsense| pfsense.vm.provider "libvirt" do |vm| vm.memory = "2048" end # credencials pfsense.ssh.insert_key = false pfsense.ssh.username = "admin" pfsense.ssh.password = "vagrant" # deshabilitem carpeta compartida per defecte, no ens cal i no funciona pfsense.vm.synced_folder ".", "/vagrant", disabled: true end end
Ara ja hauriem de tenir els 3 arxius:
Comprimim els 3 arxius en el package box (trigarà una mica):
$ tar cvfz pfsense-2.9.0.box ./metadata.json ./Vagrantfile ./box.img
Amb l'arxiu box disponible, ja podem importar la imatge al sistema local:
$ vagrant box add pfsense-2.9.0.box --name pfsense-2.9.0
Creeu un compte a Vagrant Cloud. La manera més senzilla sol ser logant-se amb Github.
Anar a Vagrant Registry
Anar a Crear box registry i crear-ne un amb el teu nom d'usuari registrat.
Entrar dins el teu registry.
Anar a «+ Create box»