23/06/2017 - VAGRANT
Bu basit örneğimide kurulu olan Vagrant kutusunun yedeğini alacağız ve tekrar yükleyeceğiz.
Vagrant kutumuzun yolunun /Users/inanzzz/Webserver/php7/
olduğunu varsayıyoruz. Terminal'de mac:php7 inanzzz$
şeklinde görebiliriz.
mac:php7 inanzzz$ vagrant halt
==> php7: Attempting graceful shutdown of VM...
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.
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...
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
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
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"
...
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
Bu versiyonda xenial64
'ün sistemde bulunmaması gerekir. Eğer mevcutsa, öncelikle vagrant box remove
komutu ile kaldırın.
$ ls -l ~/.vagrant.d/boxes
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"
...
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
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.