Packer ile Azure üzerinde VM Image Yönetimi – Bölüm 2
0

Packer ile Azure üzerinde VM image yönetimine devam ediyoruz. Bir önceki yazımızda Service Principal ve Packer tanımlaması için JSON dosya oluşturup Variable tanımlarını yaptık fakat karşılarına değerler girmedik. Şimdi dilerseniz bizden istenilen tanıımlamaları tek tek girelim. Aşağıdaki resim içerisinde göreceğiniz gibi Variables olarak adlandırılan bölümde, Azure Subscription detayları, Service Principal bilgileri ve son olarak oluşturulacak olan image için saklanacak resource group ve image name bilgileri yer almaktadır. Bu bilgileri doldurduktan sonra, daha sonra onları ilerki tanımlamalarda kullanıyor olacağız. Adından anlaşılacağı gibi, bunlar sadece bizim abonelik ve packer için kullanılacak bilgileri içermektedir.

Resim-1

Yukarıda gördüğünüz beyaz alan içerisinde tüm istenilen key-value ilişkisi içerisindeki değerleri doldurdum. Packer kendi içinde Azure ARM API üzerinden istek yaptığı zaman Service Principal kullanarak yani ClientId ve ClientSecret ile erişim sağlayıp, ilgili subscriptipon üzerinde işlemlere başlayacak. Şimdi JSON dosyası içerisinde geliştirmelere devam edeceğiz. Bir özellik daha ekleyeceğiz JSON içerisine ve bu sefer adı ‘Builders olacak ve alt kısmına ‘Builders bize sunduğu özellikleri girebileceğiz. Basit haliyle Builders ne iş yapar derseniz, çeşitli platformlar için sanal makineler oluşturup bunlardan image üretmekten sorumludur. Örneğin, EC2, VMware, Azure, Citrix, VirtualBox, vb. İçin ayrı geliştiriciler vardır. Packer, varsayılan olarak birçok üretici ile birlikte gelir ve ayrıca yeni geliştiriciler eklemek için geliştirelebilir ve geliştirilebilir.

Şimdi ise Builders için bir tanımlama yapalım ve nasıl kullanıldığını anlamaya çalışalım. Öncelikle ‘builders’ tanımlaması aşağıdaki gibi yapılmaktadır.

Resim-2

Yukarıda görüldüğü gibi ‘Builders’ nesne içerisine oluşturacağımız image için gerekli key-value değerleri girebiliriz. Bu kısımda anlaşılacağı gibi benim gireceğim değerleri nereden öğreneceğinizi merak ediyorsanız, bunun için Packer sayfasını ziyaret edebilirsiniz. Takdir ederseniz her hizmet sağlayıcısının ( Azure, AWS, Vmware, Hyper vd ) hepsinin kendine özel terimleri ve adlandırmaları var. Bu yüzden bunları key – value şeklinde tanımlarken, reference alabileceğiniz tek sayfa Packer Builders sayfası olacaktır. Şimdi ise, Azure için örnek bir ‘builders’ tanımlarını inceleyelim.

Resim-3

Artık ‘Builders’ içerisine yaptığımız tanımlamaları görmektesiniz. Aslında çok zor ve anlaşılmayacak bir tarafı yok. Hemen ‘Builders’ tanımın altında “Type’ ( 13.Satır ) yazan kısımda hangi provider için kullanacağımızı belirtmek zorundayız. Bunun sebebi yazımızın başında söylediğimiz gibi, Packer birçok provider üzerinde image yönetimini destekliyor. Turkuaz alan içerisine aldığım 15 – 20 satır arasına dikkat ettiğinizde, Variables Nesne içerisinden onları değişken şekliden çağırıp kullandık. Aslında JSON dosyasımızın ilk kısmında, Variable alanları tanıtıp, ‘Builders’ içerisinde kullandık. En son olan kırmızı bölgemizde satır 22 – 40 arasındaki alan ise Packer sayfası üzerinden image yönetimini için gerekli tanımlamalar olarak söyleyebiliriz. Bu tanımlamalar olmadan herhangi bir yönetilen imaj oluşturma şansınız yok. Bu kısımda, ‘Azure Tags’ nesnesinin karşına key-value olarak bir takım Tagler tanımladım. Bunlarıda kaynak için atamasını yapıyor olacak. Bunun dışında imaj özelinde yaptığımız tanımlaların karşısındaki değerlere baktığınız zaman sizde çok kolay bir şekilde anlayacaksınız. Bunlar sırasıyla, “ImageSku,ImagePublisher,Image_Offer” gibi değerler, bunun yanı sıra, WinRM gibi hizmetlerin açılması ve tanımlamaları yaptım. Son olarak size makine boyutu ve region detaylarını belirttik.

Aşağıdaki ekran görüntüsünde, Packer sayfasından bir alıntı yapmak istedim. Bu görüntü içerisinde sizlere Packer sayfası üzerinde ne kadar basit bir şekilde yapmanız gerektiğini anlatıyor. Bir çok insan image yönetimini klasik ya da alıştıkları yöntemler ile yapmakta ısrarcı davranıyor. Mevcut kuralları yıkmak gerçekten çok zor, kurum kültürü organizasyon hareketleri malasef bu değişikliğe çok çabuk izin vermiyor. Ama makalemizin ilerleyen kısımlarında, Packer’ın yeteneklerine alışacağınıza inanıyorum.

Resim-4

Bir sonraki yazımızda, Packer için farklı bir konu olan “Provisioners” adlı kısmı inceleyeceğiz. Burası benim en çok sevdiğim ve neler yapabileceğimizi tamamen kavracağımız nokta olarak söyleyebilirim.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

 TAGs: Packer ile Azure üzerinde VM image yönetimi,Ansible, Azure Managed Image, Azure Managed Image nedir, azure resource manager, Azure Resource Manager (ARM), Custom Image, hashicorp, JSON, Packer, Powershell DSC, packer nedir,packer ne yapar

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Hasan Güral, Istanbul doğumlu ve uzun yıllardır bilişim sektöründe danışmanlıktan eğitmenliğe farkli pozisyonlarda görev almıştır. Üniversite eğitimiyle birlikte bilişim sektöründe Kibar Holding, Bilge Adam Bilgi Teknolojileri Akademisi ve PeakUp Bilgi Teknolojileri gibi farkli kurumlarda Kıdemli Danışman ve Eğitmen olarak sektöre yön veren projelerde yer almistir.Microsoft Azure alanında yapmış olduğu paylaşımlar ve katkılarından dolayı Microsoft Valuable Professional (Azure) unvanına hak kazanmıştır. Cloud teknolojilerinin otomasyon alaninda gelişmesiyle birlikte zamaninin bir çoğunu PowerShell, Event-Driven Orchestration, Infrastructure as a Code ve Configuration as a Code ile geçirmektedir.Kariyerine Ingiltere’de DevOps Engineer ve Automation Enthusiast rolü ile Cloud Rundle’da devam etmektedir.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

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