1. Anasayfa
  2. Microsoft Azure

Azure Automation – Runbook Kullanımı – Bölüm 6


2

Artık Automation yazımızın son bölümüne geldik. Oluşturduğumuz iki adet Runbook ( StartVM ve StopVM) içerisine Powershell Workflow kod bloklarımızı yazalım. Bu kısımda ilk olarak “PeakUp-StartVM” adındaki Runbook aktivitesini geliştirmek olacak. Runbook aktivitesinin adında anlaşılacağı gibi, belirlediğimiz Virtual Machine Start etmek için kullanacağımız “Start-AzureVM” cmdletini bir döngü içerisinde kullanıp ve bu cmdlet içerisine parametreler göndererek Workflow içerisinde kullanacağınız. Bu parametreler, “Start-AzureVM” cmdlet’ine ait mandatory (zorunlu)olarak adlandırıyoruz. “PeakUp-StartVM” Runbook aktivitesinin içerisine girip “Author” sekmesinden Draft bölümüne aşağıdaki bulunan kod bloğunu yapıştıralım ve “Publish” edelim.

Bu konunun diğer yazılarına aşağıdaki linklerden ulaşabilirsiniz.

Azure Automation – Runbook Kullanımı – Bölüm 6

Azure Automation – Runbook Kullanımı – Bölüm 5

Azure Automation – Runbook Kullanımı – Bölüm 4

Azure Automation – Assets – Bölüm 3

Azure Automation – Automation Account Oluşturulması – Bölüm 2

Azure Automation – Giriş – Bölüm 1

Resim-1

Publish ettikten sonra, Kod tarafını biraz açıklama gereği hissediyorum. Birçok kişinin aklına takılabilecek olan yerler var. İlk önce, “IF” statement içerisinde yazdığımız kısım Runbook aktivitesi her gün çalışacağından dolayı hafta sonuna denk geldiği anda Statement doğru olduğu zaman ilgili kod blok devreye girerek Workflow sonlandıracaktır. “If” kısmı yazmamızın sebebi, Runbook aktivitesini Schedule ederken hafta sonu gibi bir belirtme şansımız olmadığı için bunu Workflow içerisin de belirttim.

Kod bloğu içerisin de diğer satırların açıklamaları şu şekilde

  • Line 9 – 11 : Tanımlamış olduğumuz Asset içerisinden çağırıp değişkenlere atayarak Powershell Workflow’un ilerleyen satırlarında çağırmak için yapılan aksiyondur.
  • Line 13 : Add-AzureAccount cmdlet sayesinde Azure kaynaklarına erişmek için subscription eklenmesi sağlanmıştır.
  • Line 15 : Eklenen hesabın içerisinde birden fazla Subscription olacağından dolayı işlem yapılmak istenen SubscriptionId gönderilerek seçilmiştir.
  • Line 17 : Hashtable oluşturarak, işlem yapılması istediğimiz VM’lerin Name ve CloudService isimlerini bir tablo haline getirerek döngü içerisinde kullanılması hedeflenmiştir.
  • Line 26-28 : Oluşturulan HashTable içerisindeki her Item için foreach döngüsü kullanarak Start-AzureVM cmdlet içerisine parametre gönderilerek Runbook aktivitesinin yapılması istenen iş gerçekleştirilmiştir.

 

Sıra geldi “PeakUp-StartVM” isimli Runbook aktivitemizi Schedule etmeye işlemine, geliştirilen Runbook aktivitesi herhangi bir şirketin mesai saati başladığı zamanlarda ilgili Virtual Machine otomatik bir şekilde başlatması hedeflenmektedir. Bu schedule işlemini yaparken optimum saatin belirlenmesi önemlidir. Ben şimdilik her gün “08:00” olarak schedule olarak çalışacak şekilde ayarlayacağım.


Resim-2

“PeakUp-StartVM” adlı Runbook aktivitesini Schedule bir duruma getirdik. Schedule sekmesine gidelim ve kontrolleri sağlayalım.


Resim-3

Schedule bir şekilde çalışacağını gördükten sonra, “PeakUp-StopVM” adlı Runbook aktivitesinin geliştirme aşamasına geçebiliriz. Yapacağımız aslında çok basit, “PeakUp-StartVM” adlı Runbook içerisinde yazdığımız kod bloğunun sadece, Start-AzureVM cmdlet’i yerine “Stop-AzureVM” kullanıp Schedule ederken ilgili değişkeni göstermek. Hemen Runbook editor kısmına gelip Powershell Workflow yazıyorum.


Resim-4

“PeakUp-StopVM” isimli Runbook aktivitemizi Publish ediyorum ve Schedule işlemiyle devam edelim. Geliştirilen Runbook aktivitesi herhangi bir şirketin mesai saati bitiği zaman ilgili Virtual Machine otomatik bir şekilde kapatılması istiyoruz. Hatırlarsanız, Schedule değişkenimizi bir önceki yazımızda Powershell ile yaratmıştık ve orada ilgili değerleri her gün “19:00” olarak belirttik. Şimdi Schedule işlemini Powershell aracılığı ile gerçekleştirelim.


Resim-5

Runbook aktivitesini Powershell ile Schedule etmek için, “Register-AzureAutomationScheduleRunbook” cmdlet bizlere yardımcı oluyor. Bu cmdlet içerisine “AutomationAccount”,”RunbookName” ve “Schedule” objesini göndererek register işlemini gerçekleştirdik. Artık yapmamız gereken, Runbook aktivitesini belirlediğimiz aralıklarda Virtual Machine için gereken aksiyonları yapacaktır. Basit bir Runbook ile maliyet tarafında çok büyük avantajlar sağladık. Yazımıza son olarak bir cümle eklemek istiyorum, Azure Automation da yapabilecekleriniz sizin hayal gücünüze bağlı olduğunu unutmayalım.

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

Referanslar

https://www.mshowto.org

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

Yorumlar (2)

    Bir yanıt yazın

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