Ubuntu 20.04 Üzerinde Vagrant Kurulumu

Zeki Ahmet Bayar - Dec 15 '21 - - Dev Community

Vagrant, topluluk tarafından fazla bilinmese de aslında tıpkı Docker gibi bir sanallaştırma aracı. Ancak tabii ki Docker'dan daha eski ve aralarında temel olarak ayrışmış farklar var.

Bunlardan en bilineni, Docker sistem ve ağ servislerinin kullanımında geride kalırken Vagrantın tıpkı yeni bir sanal makineymiş gibi bu servisleri de beraberinde getirerek tamamen gerçekçi test ortamları sağlaması.

Örneğin test ederken çeşitli sistem servislerini görüntülemeniz gereken bir yazılım geliştiriyorsanız, Vagrant sizin için bulunmaz bir nimetken Docker biraz daha geri planda kalıyor.

Bu yazıda da Docker'dan daha yavaş çalışan, daha çok kaynak kullanan ancak gerekli durumlarda bir kahramana dönüşen Vagrant'ın en çok kullanılan sunucu dağıtımlarından biri olan Ubuntu 20.04 üzerine nasıl kurulacağından bahsedeceğim.

VirtualBox Ayarları

Ubuntu üzerine Vagrant kurabilmek için öncelikle kullandığınız sanallaştırma yazılımı üzerinde 'İç içe sanallaştırma' özelliğinin açılması gerekmektedir.

VirtualBox üzerinde bu özelliği aktif hale getirmek için, İlgili Sanal Makine Ayarları > Sistem > İşlemci > Nested VT-x/AMD-V ' i aktifleştir seçeneğinin işaretli olması gerekmektedir.

Image description

Eğer bu seçenek VirtualBox üzerinde silik bir şekilde gözüküyorsa aşağıdaki adımlar takip edilerek Powershell üzerinden aktifleştirilebilir.

  • VirtualBox'ın kapatılması

Bu işlemden önce eğer hali hazırda VirtualBox açıksa veya arka planda çalışan bir sanal makine varsa tamamı kapatılmalıdır.

  • VirtualBox'ın sistem üzerinde tanımlanması

Virtualbox'ı sistem üzerinde tanımlamak için,



SET PATH=%PATH%;"C:\Program Files\Oracle\VirtualBox"
$env:PATH = $env:PATH + ";C:\Program Files\Oracle\VirtualBox"


Enter fullscreen mode Exit fullscreen mode

komutları Powershell üzerinde çalıştırılır. Bu sayede Powershell üzerinde VBoxManage aracı kullanılabilir hale gelecektir.

  • İç içe sanallaştırmanın açılması

Aşağıda yer alan VBoxManage komutu sayesinde ilgili sanal makine için iç içe sanallaştırma aktif hale getirilir.

Not: vm-name yerine iç içe sanallaştırmanın açılacağı sanal makinenin görünür adı yazılır.



VBoxManage modifyvm vm-name --nested-hw-virt on


Enter fullscreen mode Exit fullscreen mode
  • İç içe sanallaştırmanın açıldığının kontrolü

Sanallaştırma açıldıktan sonra sanal makine ayarları aşağıdaki gibi gözükmelidir.

Image description

Buna ek olarak Ubuntu içerisinde cpu-checker paketi ile kvm'in açık olduğundan emin olunmalıdır.



# sudo apt install cpu-checker
# sudo kvm-ok


Enter fullscreen mode Exit fullscreen mode

Çıktı aşağıdaki gibi görünmelidir.

Image description

VirtualBox Kurulumu

Evet, biraz garip görünse de VirtualBox üzerinde çalışan Ubuntu 20.04 üzerine tekrar VirtualBox kurulması gerekmektedir. Çünkü vagrant aslında kendi başına tamamen bir sanallaştırma yazılımı değildir, Vagrant Box'ları ayağa kaldırmak için arka tarafta VM-Ware, VirtualBox gibi sanallaştırma yazılımlarına ihtiyaç duyar.

Ubuntu 20.04 üzerinde,



sudo apt update
sudo apt install virtualbox


Enter fullscreen mode Exit fullscreen mode

komutları ile VirtualBox kurulur.

Vagrant Kurulumu

Sağlayıcıyı sisteme kurduktan sonra Vagrantı kurmak için son sürüm deb paketi wget komutu yardımı ile indirilir.



wget https://releases.hashicorp.com/vagrant/2.2.19/vagrant_2.2.19_x86_64.deb


Enter fullscreen mode Exit fullscreen mode

İndirilen deb paketi,



sudo apt install ./vagrant_2.2.19_x86_64.deb


Enter fullscreen mode Exit fullscreen mode

komutu ile sisteme kurulur.

İlk Vagrant Box'ın Başlatılması

Öncelikle bir Vagrant Box başlatmak için boş bir dizin oluşturulur ve kaldırılmak istenen işletim sistemi vagrant init'e parametre olarak verilir.



mkdir my_first_vagrant && cd my_first_vagrant
vagrant init centos/8


Enter fullscreen mode Exit fullscreen mode

Ayağa kaldırılmak istenen ilgili dağıtım veya işletim sistemi Vagrant Cloud üzerinden bulunabilir.

Örneğin bir pardus21 ayağa kaldırmak için zeki/pardus21 kullanılabilir.

Vagrant init çalıştırıldıktan sonra bulunulan dizine bir Vagrantfile dosyası oluşturmaktadır. Bu dosyanın içerisinde şu anlık sadece kaldırılması istenen işletim sistemi/dağıtım yazsa da, vagrant içerisine dosya gönderme, vagrant içerisinde komut çalıştırma vb gibi adımlar da tanımlanabilir.

Vagrant'ı Ayağa kaldırma

Vagrant up komutu ile Vagrantfile'ın bulunduğu dizinde başlatılan vagrant ayağa kaldırılır.



vagrant up


Enter fullscreen mode Exit fullscreen mode

SSH ile Vagrant'a Bağlanma

Vagrant ayağa kalktıktan sonra SSH ile bağlanabilmek için,



vagrant ssh


Enter fullscreen mode Exit fullscreen mode

komutu kullanılır.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .