İlginizi Çekebilir
  1. Ana Sayfa
  2. Microsoft Azure
  3. Azure Automation – Runbook Kullanımı – Bölüm 6

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

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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

https://www.mshowto.org

Yorum Yap

Yazar Hakkında

Hasan Güral, Profesyonel olarak 5 senedir bilişim sektöründe çalışmaktadır. Üniversite eğitimiyle birlikte sektörde sistem uzmanı pozisyonunda görev yaptı. Halen Bilge Adam Bilgi Teknolojileri Akademisi'nde Danışman olarak çalışmaktadır. Microsoft ürün ailesi ve network altyapıları ile ilgilenmektedir.

Yorum Yap

Yorumlar (2)