Vagrant’a Genel Bakış — 1

Samedhan KARAMEŞE
4 min readJan 7, 2019

--

Vagrant serisinin ikinci ve üçüncü yazılarına ilgili linkten ulaşabilirsiniz.

Vagrant HashiCorp tarafından geliştirilen sanal makine yaratmamızı ve yönetmemizi sağlayan bir araçtır. Vagrant sayesinde sanal makinenin konfigürasyonlarını kolayca yapabilir ve pek çok makineyi rahat bir şekilde yönetebiliriz. Vagrant’ın bir CLI’ı bulunuyor bunun yanında Vagranfile ile kullanacağımız sanal makinenin tanımını yapabiliyoruz. Vagrant’ın son parçası ise Vagrant Cloud https://app.vagrantup.com/boxes/search adresinde görebileceğiniz gibi HashiCorp tarafından yönetilen bu depoda ihtiyaç duyabileceğimiz sanal makineler bizim için hazırlanmış durumda. Kendi hazırladığımız sanal makineleri yine bu depoda paylaşabiliriz. Bu depoda istediğimiz sanal makinelerimizi herkese açık yayınlayabiliriz veya erişim kısıtı koyabiliriz. Vagrant içerisinde hali hazırda bir SSH sistemi vardır. ( SSH ile ilgili daha önce yazdığım yazı -> https://bit.ly/2R98xnP ) Ayrıca ana makineden sanal makineye ve tam tersi olacak şekilde dosya senkronizasyonu sağlayabiliriz, bir ağ oluşturabilir ve çoklu ağ yapılandırmalarını yapabiliriz.

Vagrant’ı neden kullanıyoruz?

Yazılım geliştiriciler geliştirme ortamını hazırlamak için izole edilmiş bir alana ihtiyaç duyabilir, yazılım araçları, kütüphaneler, kullanılan yazılımların versiyonları gibi pek çok parametre yazılım geliştirme sürecinde karşımıza sorun olarak çıkmakta, bu sorunu çözmek adına bir sanal makine kullanılabilir ve bu sanal makineyi veya makinelerin yönetilmesini Vagrant bizim için çocuk oyuncağı haline getirecektir. Sadece yazılım geliştirme süreçleri dışında pek çok parçası olan sistemlerin aynı zamanda aynı makine üzerinde çalışmasını sağlamak için yine sanal makinelere ihtiyaç duyuyoruz. ( Docker başka bir konu sonra yazacağım 😃 )

Kurulum

Bu yazı süresince Vagrant’ı VirtualBox ile kullanacağım. https://www.vagrantup.com/ adresinden Vagrant’ı, https://www.virtualbox.org/wiki/Downloads adresinden VirtualBox’ı indirip, bilgisayarınıza kurabilirsiniz.

Box Oluşturma

Box, sanal makieneleri karşılayan bir terimdir ve bundan sonra sanal makineleri box adıyla kullanacağım.

vagrant init bento/ubuntu-18.04

Bir dizin yaratalım ve o dizinin içine girip yukarıdaki komutu çalıştıralım bu konut sayesinde VagrantCloud’da bulunan ubunu-18.04 Vagrantfile oluşturduğumuz dizin altına gelecektir. Bu komut içerisinde kullandığımız bento Vagranfile oluşturan organizasyonun adıdır, VagrantCloud’da görebilirsiniz.

vagrant up

Vagrantfile’ın bulunduğu dizinde yukarıdaki komutu çalıştırırsak, Vagrantfile ile hazırlanmış olan box’ın bağımlılıkların indirilmesi, ilk ayarları vs. gibi işlemler bizim yerimize yapılmış olacak ve box’ımız çalışmaya başlayacak.

Vagrant kurulumunu yaptığımız box’ı ana makinenin cache’inde tutar eğer bu box silinmemişse ilgili box’ı tekrar çalıştırmak istediğimizde vagrant up komutundan sonra bağımlılıkları indirmekle uğraşmayacak direk cache’den okuyup, makineyi ayağa kaldıracak. Cache’de tutulan box’lar ~/.vagrant.d/boxes dizininde bulunur. Burada box’ın tüm ayarları ve yedekleri bulunur. Ayrıca burada Vagrantfile’ı da görebiliriz, Dizinin altında bulunan Vagrantfile’da bir değişiklik yaparsak bu cache’de duranı ezecektir.

cache dizinin içeriği bu şekilde

Vagrant up komutunun ardından box ayağa kalkar fakat box’ın akibetini bize gösterebilecek bir grafik arayüz yok, box’ın durumunu komut satırından takip edebiliriz.

vagrant status

komutunu çalıştırdığımızda box’ın durumunu görebiliriz.

Yukarıdaki ekran görüntüsünde görüldüğü gibi eğer bir vagrant komutunu kullanmak istiyorsak Vagrantfile hangi dizinde ise o dizine geçmeli ve komutu orada kullanmalıyız veya box id’sini kullanmalıyız.

İlgili dizine gittim ve box’ın durumunu görebildim.

Eğer birden fazla box var ise o halde herhangi bir dizinden box’ların durumunu öğrenmek için

vagrant global-status

komutunu kullanabiliriz.

şuanda benim 4 adet box’ım var bunların 3'ü çalışmakta.

Box’ları dururmak için ise

vagrant halt {vagrant id}

komutunu kullanırız.

Box’ a Bağlanmak

Box, çalışmaya başladığında ona bağlanmak ve gerekli işlemleri yapmak için grafik arayüze ihtiyacımız yok bu yüzden ssh bağlantısı ile ubuntu’nun terminaline bağlanabilir yapacağımız işleri komut satırı aracılığı ile yapabiliriz.

Bunun için kullanmamız gereken komut

vagrant ssh

Box’ ı kaldırmak

Box’ın tüm kaynaklarını silmek için kullanacağımız komut

vagrant destroy

Vagrant serisinin ikinci ve üçüncü yazılarına ilgili linkten ulaşabilirsiniz.

--

--