Vagrant, sanal makine ortamlarını oluşturmak ve yönetmek için kullanılan açık kaynak kodlu bir araçtır. Varsayılan olarak Vagrant, VirtualBox, Hyper-V ve Docker’ın üzerine makineler kurabilir ancak Vagrant eklentileri sayesinde Libvirt (KVM), VMware ve AWS gibi diğer birçok sağlayıcı üzerine de makine kurabilir.
Vagrant, geliştiriciler tarafından geliştirme ortamı oluşturmak için kullanılır. Bu makalede ise makineleri açmak için VirtualBox sanallaştırma uygulamasını kullanacağız.
Sisteminizde VirtualBox kurulu değilse, CentOS 7’de VirtualBox Nasıl Kurulur? makalesine bakabilirsiniz.
Vagrant indirme sayfasını ziyaret edin ve Vagrant’ın yeni bir sürümü olup olmadığını kontrol edin. Muhtemelen mevcut sürüm 2.2.1 olacaktır.
Aşağıdaki komut aracılığı ile kurulumu başlatıyoruz.
sudo yum install https://releases.hashicorp.com/vagrant/
Yüklemenin başarılı olduğunu doğrulamak için Vagrant sürümünü ekrana bi basalım
vagrant --version
Çıktısı Vagrant 2.0.2
olacak.
Şimdi Vagrantı, CentOS sistemimize kurduk en yaygın kullanım durumu olan bir geliştirme ortamı oluşturacağız. Bunun için hemen bir dizin oluşturalım.
mkdir ~/test-project
cd ~/test-project
Bir sonraki adımda, vagrant init
komutunu kullanarak yeni bir Vagrant dosyasını oluşturun ve kullanmak istediğiniz sistemi belirtin.
vagrant init ubuntu/bionic64
Oluşturduğunuz Vagrantfile
dosyasını dokümantasyona göre düzenlemekte özgürsünüz.
Şimdi sanal makineyi Vagrantfile'a
göre oluşturacak ve yapılandıracak Vagrant komutunu çalıştırabiliriz.
vagrant up
Makineyi kurmaya başlayacak ve işlemi internet hızınıza göre kısa bir sürede tamamlayacaktır.
==> default: Configuring and enabling network interfaces...
default: SSH address: 192.168.0.15:22
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Rsyncing folder: /home/mertcan/Vagrant/test-project/ => /vagrant
Kullanmış olduğum Vagrantfile
dosyasına gelecek olursak
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provision :shell, :inline => "apt-get update --fix-missing"
config.vm.provision :shell, :inline => "apt-get install -q -y g++ make git curl vim"
config.vm.synced_folder "home/mertcan/Vagrant/test-project/", "/vagrant"
end
Makine kurulduktan sonra oluşturduğunuz proje dosyasını vagrant direk olarak kendi dizini içerisine taşıyabilir ve geliştirme ortamınızı kurabilir.
Oluşturduğumuz makineye SSH bağlantısı kurmak istiyorsak
vagrant ssh
Oluşturduğumuz makineyi durdurmak istiyorsak
vagrant halt
Çalışan makineyi durdurmak ve makinenin oluşturulması sırasında oluşturulan tüm kaynakları yok etmek istiyorsak
vagrant destroy