Bu basit örneğimide kurulu olan Vagrant kutusunun yedeğini alacağız ve tekrar yükleyeceğiz.


Yedek alma


Vagrant kutumuzun yolunun /Users/inanzzz/Webserver/php7/ olduğunu varsayıyoruz. Terminal'de mac:php7 inanzzz$ şeklinde görebiliriz.


Çıkış


mac:php7 inanzzz$ vagrant halt
==> php7: Attempting graceful shutdown of VM...

Yedekleme


mac:php7 inanzzz$ vagrant package
==> php7: Clearing any previously set forwarded ports...
==> php7: Exporting VM...
==> php7: Compressing package to: /Users/inanzzz/Webserver/php7/package.box

Yukarıda da gördüğümüz gibi kutumuz package.box olarak yedeklenmiş durumda.


Silme


mac:php7 inanzzz$ vagrant destroy
php7: Are you sure you want to destroy the 'php7' VM? [y/N] y
==> php7: Destroying VM and associated drives...
==> php7: Pruning invalid NFS exports. Administrator privileges will be required...

Mevcut içerik


mac:php7 inanzzz$ ls -l
-rw-r--r--@ 1 inanzzz staff 578 23 Jun 16:36 Vagrantfile
-rw-r--r-- 1 inanzzz staff 628388089 23 Jun 16:44 package.box

Tekrar yükleme - versiyon 1 (tavsiye edilen)


Bu versiyonda xenial64'ün sistemde bulunması gerekir. Eğer yoksa, öncelikle vagrant box add ubuntu/xenial64 komutu ile yükleyin.


$ ls -l ~/.vagrant.d/boxes
drwxr-xr-x 4 inanzzz staff 136 23 Jun 15:35 ubuntu-VAGRANTSLASH-xenial64

Vagrantfile


Aşağıdaki içeriğin orjinal olduğunu varsayalım.


# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"

config.vm.define :php7 do |php7_config|
php7_config.vm.hostname = "php7"
php7_config.vm.network "private_network", ip: "192.168.50.30"
end

config.vm.provider :virtualbox do |virtualbox_config|
virtualbox_config.name = "Php7 - Ubuntu 16.04 - 50.30"
virtualbox_config.memory = 2048
virtualbox_config.cpus = 2
end

config.ssh.username = "ubuntu"

config.vm.synced_folder "", "/var/www/html", nfs: true, mount_options: ["actimeo=2"]
end

İçeriği aşağıdakine uygun şekilde yenileyelim.


...
config.vm.box = "my-ubuntu-xenial64-box"
config.vm.box_url = "file:///Users/inanzzz/Webserver/php7/package.box"
...

Geri yükleme


mac:php7 inanzzz$ vagrant up

Kutu sisteme aşağıdaki gibi yüklenmiş olacak.


$ ls -l ~/.vagrant.d/boxes
drwxr-xr-x 3 inanzzz staff 102 23 Jun 21:15 my-ubuntu-xenial64-box

Tekrar yükleme - versiyon 2


Bu versiyonda xenial64'ün sistemde bulunmaması gerekir. Eğer mevcutsa, öncelikle vagrant box remove komutu ile kaldırın.


$ ls -l ~/.vagrant.d/boxes

Vagrantfile


Aşağıdaki içeriğin orjinal olduğunu varsayalım.


# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"

config.vm.define :php7 do |php7_config|
php7_config.vm.hostname = "php7"
php7_config.vm.network "private_network", ip: "192.168.50.30"
end

config.vm.provider :virtualbox do |virtualbox_config|
virtualbox_config.name = "Php7 - Ubuntu 16.04 - 50.30"
virtualbox_config.memory = 2048
virtualbox_config.cpus = 2
end

config.ssh.username = "ubuntu"

config.vm.synced_folder "", "/var/www/html", nfs: true, mount_options: ["actimeo=2"]
end

İçeriği aşağıdakine uygun şekilde yenileyelim.


...
config.vm.box_url = "file:///Users/inanzzz/Webserver/php7/package.box"
...

Geri yükleme


mac:php7 inanzzz$ vagrant up

Kutu sisteme aşağıdaki gibi yüklenmiş olacak.


$ ls -l ~/.vagrant.d/boxes
drwxr-xr-x 4 inanzzz staff 136 23 Jun 15:35 ubuntu-VAGRANTSLASH-xenial64

Tavsiye


Size "versiyon 1"'i kullanmanızı tavsiye ederim çünkü kutuya farklı isim vererek, ilerideki karşınıza çıkabilecek olan yanlış anlamaları ortadan kaldıracaktır.