Vagrant Nedir?

Merhaba, bu yazımızda, özellikle sanal makinelerle sıkça çalışıyorsanız, işlerinizi büyük ölçüde hızlandırıp kolaylaştıracak olan Vagrant aracını ele alacağız. Bu araç, sanal makine işlemlerini ve yönetimini basitleştirerek, geliştirme süreçlerinizi daha verimli hale getirme potansiyeli taşıyor. Eğer sıklıkla sanal makinelerle iş yapmaktaysanız, Vagrant’ın sunduğu kolaylıklardan yararlanmak için bu yazıyı okumanızı tavsiye ederiz.

Vagrant Nedir?

Vagrant, yazılım geliştiricilerin çalışma ortamlarını kolayca ayarlamalarını ve yönetmelerini sağlayan bir açık kaynaklı bir yazılımdır. Sanallaştırma platformları ve bulut ortamları ile entegre olabilir ve bu ortamları otomatik olarak başlatıp, durdurabilir, düzenleyebilir ve silebilirsiniz.

Vagrant Windows Kurulumu

Vagrant’ın kurulumu için, işlemci türünüze uygun çalıştırılabilir dosyayı developer.hashicorp.com/vagrant/install adresinden indirebilirsiniz.

 

Şekil1: Vagrant'ın Windows’a İndirilmesi
Şekil1: Vagrant’ın Windows’a İndirilmesi

Dosyayı indirdikten sonra, yönetici olarak çalıştırmalısınız. Lisans sözleşmesini kabul ettikten sonra “install” butonuna tıklamalı ve kurulumu başlatmalısınız.

 

Şekil2: Vagrant Kurulumu
Şekil2: Vagrant Kurulumu

İndirme işlemi tamamlandığında, bilgisayarınızı yeniden başlatarak kurulumu tamamlamanız gerekmektedir.

Şekil3: Kurulumu tamamlama
Şekil3: Kurulumu tamamlama

Vagrant’ın kurulumunu tamamladık. Şimdi bir terminal ekranı açıp ‘vagrant’ komutunu çalıştırıyoruz. Başarılı bir kurulumun ardından, tüm bu komut seçeneklerini görmeniz mümkün olacaktır.

Şekil4: Vagrant komut seçenekleri
Şekil4: Vagrant komut seçenekleri

Vagrant VMware Entegrasyonu

Vagrant, varsayılan olarak VirtualBox uygulamasıyla çalışır. Ancak, VMware Workstation’ı ile kullanacağım Ayrıca, Vagrant Docker, Hyper-V ve AWS gibi platformlarla da çalışabilir. Bu platformlarla Vagrant’ın entegrasyonu yine ilgili platform için özelleştirilmiş eklentiler aracılığıyla gerçekleştirilir.

Vagrant VMware Entegrasyonu sağlamak için Vagrant VMware Utility yardımcı programı ve vagrant-vmware-desktop eklentisi kurulur.

  1. Vagrant VMware Utility Kurulumu
    • Vagrant 2.2.14 ve üzeri sürümlerde kullanılan bir yardımcı programdır.
    • VMware sanal makinelerini Vagrant ile yönetirken, bu program sanal makinelerin durumunu takip etmek ve yönetmek için gereklidir.
    • Gerekli olan sertifika ve anahtarları sağlar.
    • VMware sanal makineleri ile Vagrant arasındaki iletişimi kolaylaştırır.

    vagrant-vmware-utility sitesinden Windows için Vagrant VMware Utility’yi indirip dosyayı çalıştırın ve ‘next’ butonuna tıklayarak kurulumu tamamlayın.

    Şekil5: Vagrant VMware Utility Windows’a İndirilmesi
    Şekil5: Vagrant VMware Utility Windows’a İndirilmesi

     

  2. vagrant-vmware-desktop:
    • Vagrant’ın VMware ile uyumlu çalışmasını sağlayan bir Vagrant eklentisidir.
    • VMware Workstation ve VMware Fusion gibi VMware ürünleriyle çalışırken, Vagrant’ın bu platformlarla etkileşimini kolaylaştırır.
    • VMware sanal makinelerini oluşturmak, başlatmak, durdurmak ve silmek gibi işlemleri Vagrant komutları aracılığıyla gerçekleştirmenizi sağlar.
    • VMware sanal makineleri için Vagrantfile oluşturmanıza olanak tanır ve bu dosyaları yönetmenizi sağlar.

Eklentiyi indirmek için aşağıdaki komutu kullanın:

vagrant plugin install vagrant-vmware-desktop

 

Şekil6: Vagrant plugin indirilmesi
Şekil6: Vagrant plugin indirilmesi

 

Eklentiyi başarıyla indirdiğinizi kontrol etmek için aşağıdaki komutu kullanabilirsiniz:

vagrant plugin list

 

Şekil7: Plugin’leri listeleme
Şekil7: Plugin’leri listeleme

 

Vagrantfile Nedir?

Vagrantfile, Vagrant tarafından kullanılan ve sanal makinelerin nasıl oluşturulacağını, yapılandırılacağını ve yönetileceğini tanımlayan bir dosyadır. Bu dosya, Vagrant komutlarını çalıştırdığınız dizinde bulunur ve genellikle Ruby programlama dilinde yazılmıştır. İşletim sistemi, CPU ve RAM kullanımı, ağ ayarları ve otomatik kurulum scriptleri gibi ayarları tanımlar. Bu, geliştiricilerin aynı çalışma ortamını birden fazla makineye hızlı ve kolay bir şekilde dağıtmasını sağlar.

Vagrantfile, aşağıdaki gibi sanal makine yapılandırmasını tanımlamak için kullanılır:

  1. Sanal Makine Tipi ve İşletim Sistemi: Oluşturulacak sanal makinenin tipini (örneğin, VMware, VirtualBox) ve kullanılacak işletim sistemini belirler.
  2. Sanal Makine Ayarları: Sanal makinelerin bellek miktarı, CPU sayısı, ağ yapılandırması gibi ayarlarını tanımlar.
  3. Provisioning (Temin): Sanal makine oluşturulduktan sonra yapılacak işlemleri belirtir. Örneğin, shell komutları ile yazılım yüklemesi veya yapılandırma işlemleri yapılabilir.
  4. Vagrant Plugin Ayarları: Kullanılacak Vagrant eklentilerini ve bunların yapılandırma ayarlarını içerir.

Şimdi bir Vagrantfile oluşturacağız. Vagrantfile’ı kendimiz oluşturabileceğimiz gibi, istediğimiz seçenekleri belirleyerek vagrantfile-generator sitesinde oluşturmasını sağlayabiliriz. Siteye giriş yapıp, centos7 sanal makinesini VMware altyapısını kullanarak oluşturmayı istiyorum. 2 CPU ve 4 GB ram’e sahip olmasını istediğimi belirtiyorum. Sanal makineye ‘vagrant_centos’ adını veriyorum. Ayrıca, hostname ve IP seçeneklerini de belirtebiliriz, ancak ben bunları boş bırakıyorum. Kaç tane sanal makine oluşturmak istediğimi soruyor ve ben bu seçeneği 1 olarak bırakıyorum. Sonra Vagrantfile dosyamı oluşturuyorum.

Şekil8: Vagrantfile Oluşturma
Şekil8: Vagrantfile Oluşturma

 

İşte otomatik olarak oluşturduğumuz dosyamız.

# Automatically Generated by Vagrant Config Generator, see https://github.com/jianan1104/vagrantfile-generator
Vagrant.configure('2') do |config|
    (1..1).each do |i|
    config.vm.define "vagrant_centos-#{i}" do |machine|
      machine.vm.box = 'centos/7'
      machine.vm.provider "vmware_desktop" do |vb|
        vb.cpus = '2'
        vb.memory = '4096'
      end
    end
    end
  end

Vagrant ile Sanal Makine Oluşturma

“Vagrant” adlı bir klasör oluşturuyorum. Klasörün adının ne olduğu önemli değil. Ardından, oluşturduğum Vagrantfile’ı bu klasöre kaydediyorum ve terminalden bu klasöre giriş yapıyorum.

vagrant up

 

Şekil9: Vagrant ile Sanal Makine Oluşturma
Şekil9: Vagrant ile Sanal Makine Oluşturma

 

Sanal makineyi oluşturduk, şimdi ssh ile makineye bağlanalım.

vagrant ssh vagrant_centos-1

 

Şekil10: SSH Bağlantısı
Şekil10: SSH Bağlantısı

 

SSH ile bağlandığımız sanal makinemizin CentOS dağıtımına sahip olduğunu, 2 CPU ve 4GB RAM’e sahip olduğunu belirtildiği gibi kontrol ettik. Şimdi sanal makinemizi kapatalım. Makineyi kapatmak için aşağıdaki komutu kullanabiliriz.

vagrant halt

VMware Üzerinde Sanal Makineyi Görüntüleme

Vagrant ile oluşturduğunuz sanal makineleri VMware üzerinde görüntüleyebilirsiniz. Eğer VMware uygulamanız otomatik olarak bunu bulamazsa, aşağıdaki adımları takip ederek uygulama arayüzüne yansıtabilirsiniz. Bu işlem için, File menüsünden Scan for Virtual Machine seçeneğine tıklıyoruz.

Şekil11: VMware ile Makine Arama Aracını Çalıştırma
Şekil11: VMware ile Makine Arama Aracını Çalıştırma

Vagrant, sanal makine dosyalarını projeyi başlattığınız dizin altındaki .vagrant\machines dizininde saklar.

Şekil12: Vagrant Sanal Makinelerinin Dizinini Belirtme
Şekil12: Vagrant Sanal Makinelerinin Dizinini Belirtme

 

Açılan ekranda dizini seçtikten sonra ‘next’ butonuna tıklayarak devam ediyorum. Artık uygulama arayüzünden de sanal makineye erişebilirim.

Şekil13: VMWare Arayüzü

Şekil13: VMWare Arayüzü

Bu yazıda, Vagrant’ın ne olduğunu, kurulum sürecini, Vagrantfile’ın nasıl oluşturulacağını ve Vagrant ile sanal makine oluşturmayı ve yönetmeyi ele aldık. Ayrıca, Vagrant’ın VMware ile entegrasyonunu inceledik ve Vagrant ile oluşturulan sanal makinelerin VMware üzerinde nasıl görüntülenebileceğini öğrendik. Bu bilgilerin, sanal makinelerle sıkça çalışan ve işlerini hızlandırmak ve kolaylaştırmak isteyen geliştiricilere yardımcı olacağını umuyoruz. Sonraki yazıda görüşmek üzere.

Kaynaklar

Yazar Hakkında
Toplam 9 yazı
Seda KAYADEMİR
Seda KAYADEMİR
Üniversite yıllarında tanışmış olduğu veri dünyasına ilgisi artan ve bu alanda kariyer hedeflemiş bir süre yazılım mühendisi olarak çalışmış ve hedefi doğrultusunda kendini geliştirerek kariyerine veri mühendisi olarak devam etmektedir. İlgilendiği Alanlar; Dataops, Mlops, Bulut Teknolojileri.
Yorumlar (Yorum yapılmamış)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara