Vagrant Nedir? Vagrant ile Nasıl Sanal Makine Otomasyonu Yapılır?

Vagrant Nedir? Vagrant ile Nasıl Sanal Makine Otomasyonu Yapılır?
15 Ara 2023 · Güncellendi: 9 Ağustos 2026

Vagrant Nedir?

Vagrant Virtualbox, VMWare gibi sanallaştırma teknolojilerinin kullanımını kolaylaştıran bir provisioning aracıdır.

Tek bir Vagrantfile dosyası ile bir veya birden fazla sanal makinenin tüm ayarlarını ve kurulum detayları tanımlanıp  kullanılabilir.

Vagrant kendi deposundaki Box’lar ile çalışmaktadır. Bu Box’lara Kaynak: Vagrant Box Arama adresinden ulaşılabilir. Buradaki Box’ların ihtiyaçlar doğrultusunda modifiye edilerek özel olarak oluşturulabilmesi de mümkündür.

 

Vagrantfile Nedir?

Vagrantfile, Vagrant üzerinde yapmakistenilen konfigürasyonlar alıştırmak istenilen scriptlerin yazıldığı .file uzantılı bir dosyadır. Vagrant kurulumu tamalandıktan sonra Vagrant bu dosya üzerinden çalıştırmak istenen sanal makineleri ayağa kaldırır.

Vagrant.configure yapılandırma kod örneği (Vagrantfile)

 

Vagrant Kurulumu

Vagrant’ı kullanabilmek için bir adet sanallaştırma yazılımı kullanılması gerekmektedir. Kendi kurulumunuzda www.virtualbox.org/wiki/Downloads sitesinden indirebileceğiniz Oracle VirtualBox ürününü tercih edebilirsiniz. Kullanacağınız işletim sistemi ile uyumlu olan VirtualBox sürümünü indirip kurabilmeniz mümkündür.

VirtualBox indirme sayfası ekran görüntüsü

 

Vagrant’ı kendi web sitesi olan Kaynak: HashiCorp – Vagrant Kurulumu adresi üzerinden kurulumunu yapmak istediğiniz işletim sistemini seçerek indirebilirsiniz, örneğin devamında Windows AMD64 sürümü ile devam edilmiştir.

Vagrant kurulum sayfası - macOS ve Windows indirme seçenekleri

İndirdiğiniz vagrant_2.4.0_windows_amd64.msi dosyasını çalıştırarak kuruluma geçebilirsiniz. Lisans sözleşmesini kabul edip  ardından Vagrant’ın kurulacağı konumu seçtiğinizde kurulum başlayacaktır.

Vagrant Windows kurulum sihirbazı ekranı

Kurulum tamamlandıktan sonra bilgisayarınızda herhangi bir konumda bir dizin oluşturabilirsiniz, örnek kullanacağımız  dosya masaüstünde Vagrant adı altında olacak.

Komut istemi üzerinden cd komutu ile Vagrant kurulumunu yapacağımız dizine gidip vagrant init komutu ile kullanacağımız Vagrantfile oluşturulur.

Windows komut isteminde 'vagrant init' komutunun çalıştırılması

vagrant init komutu ile oluşturduğumuz dosyanın içinde # ile kullanılan commentlerin altında temel konfigürasyon ayarlarını görebiliriz.

Vagrantfile dosyasının metin editöründe görünümü

Buna alternatif olarak Kaynak: Vagrantfile Generator Aracı sitesini kullanarak da belli konfigürasyonları belirtip Vagrantfile generate edebilirsiniz.

Vagrant Cloud işletim sistemi ve sağlayıcı (provider) seçim ekranı

Kullanacağımız Vagrantfile konfigürasyonlarını not defteri üzerinden tamamlandıktan sonra dosyamızı kaydedip çıkıyoruz. Örnek olarak kullanacağımız Vagrantfile aşağıda yer almaktadır.

Vagrantfile çoklu sanal makine tanımlama kod örneği

Komut istemi üzerinden Vagrant’ı çalıştıracağımız komuta gidip vagrant up komutu ile sanal makine kurulumumuza başlarız.

'vagrant up' komutu çalıştırma çıktısı

Kurulumumuz tamalandıktan sonra makinemiz VirtualBox üzerinde yer alacaktır.

Oracle VM VirtualBox Manager'da çalışan sanal makine ayarları

Komut istemi üzerinden vagrant-ssh komutunu kullanarak herhangi bir terminale ihtiyaç duymadan da ssh bağlantısı sağlayabiliriz.

'vagrant ssh' komutu ile sanal makineye bağlanma

 

Vagrant ile Sanal Makine Otomasyonu

Vagrantfile kullanarak daha komplike ve otomize makineler yaratmak da mümkündür, aşağıda yer alan script üzerinden bazı  vagrant özelliklerine değineceğiz.

Çoklu sanal makine ve kalıcı depolama tanımlayan Vagrantfile kod örneği

İlk satırda girdiğimiz config tanımlama satırı sonrasında config.vm.define ‘xxx’ do |xxx| ile tek bir makine dahilinde konfigürasyon girip makine kurulumu sağlayabiliriz, bu satırı birden fazla farklı makine için tanımlayıp tek bir Vagrantfile ile birden fazla makine kurabiliriz.

VirtualBox'ta çalışan üç sanal makine listesi (rocky-1, rocky-2, rocky-3)

Vagrant’lar ihtiyaç doğrultusuna göre plugin de içerebilir.

Örnek olarak VirtualBox’a disk ekleme, depolama boyutu belirleme, volume group ekleme gibi özellikleri vagrant plugin install vagrant-persistent-storage komutunu kullanarak Persistent Storage plugini ile Vagrantfile içerisinde .persistent_storage tanımı ile kullanabiliriz.

'vagrant-persistent-storage' eklentisinin kurulumu

VirtualBox depolama ayarları - eklenen sanal disk görünümü

Plugin’e ihtiyaç duymadan, kuracağımız makine içerisinde çalıştırmak için Bash Scriptleri de kullanabiliriz.

Bash Scriptleri;

<makine_tanımı>.vm.provision :shell, :inline => $<script_adı> ile Vagrantfile içerisinden inline bir şekilde ya da

<makine_tanımı>.vm.provision “shell”, path: “<sh_script_lokasyonu>” ile dışarıdan bir sh scriptini çağıracak şekilde çalıştırabiliriz.

Vagrantfile inline shell provisioning script örneği (kullanıcı ve disk yapılandırması)

Shell provisioning script örneği - kullanıcı, sudo ve LVM disk yapılandırması

Kullandığımız scriptlerde her bir makine için ayrı ayrı userlar oluşturma, /etc/hosts dosyalarını editeleme ve Persistent Storage plugini ile eklediğimiz diskleri makinelere mount etme işlemlerini gerçekleştirebiliyoruz.

Vagrant ile oluşturulan üç sanal makinenin IP adresleri

Yukarıda belirtildiği gibi, Vagrant, sanallaştırma ve otomasyon süreçlerini basitleştirerek iş akışlarınızı hızlandırır. Ancak, bu süreçler karmaşık ve zaman alıcı olabilir.  Vagrant’ın kurulumu, konfigürasyonu veya otomasyon süreçleriyle ilgili daha fazla bilgi ve destek için GTech’in Sistem ve Veritabanı uzmanları ile iletişime geçebilirsiniz.

 

Hazırlayan: GTech Sistem ve Veritabanı Yönetimi Ekibi