Bir önceki yazımızda Azure Resource Group oluşturmak için Preview Portal üzerinden işlemleri gerçekleştirdik. Resource Group ve Resource Template yönetmek için birçok yöntemimiz olduğundan bahsettik. Yazımız içerisinde ikinci kısmı olan Azure Powershell Modülü ile bu işlemleri yapma şansımız olduğunu ve birden çok tekrarlanan işlemler için Powershell ile bu süreci hızlı bir şekilde yapabileceğimizi inceleyelim.
Azure Powershell Modülünü ve Azure hesabınızı Powershell içerisine tanımlamayı blog üzerindeki paylaştığım yazılardan görebilirsiniz.
Azure Powershell Modülü içerisinde iki adet farklı mod bulunmaktadır.
- Azure Resource Manager
- Azure Service Management
Bu iki farklı mod ile Azure içerisindeki kaynaklarınızı yönetebilirsiniz. Azure Powershell Modülünü kurduğunuz zaman varsayılan olarak “Azure Service Management” modu aktif haldedir. Bu kısımda dikkat etmemiz gereken yer ise, Azure Powershell modülünün versiyonun 0.8.0 üstü olması gerekmektedir. Bu kontrol sağlamak için ise Powershell içerisinde
(Get-Module -Name Azure –ListAvailable)
Resim-1
Eğer siz, Azure Powershell modulü ile Resource Group veya Resouce Template yönetmek isterseniz Azure Powershell’in modunu değiştirmeniz gerekmektedir. Switch-AzureMode cmdlet bizlere yardımcı olacaktır.
# ResourceManager Modu ile kullanma
Switch-AzureMode -Name AzureResourceManager
# Service Management Modu ile kullanma
Switch-AzureMode -Name AzureServiceManagement
Resim-2
Azure Resource Manager moduna geçtikten sonra, cmdlet listesini Powershell ile görelim. Bunun için Get-Command –Module ModuleName olarak yazdığımız zaman Resource Manager ile ilgili komutları görebileceğiz.
Get-Command -Module AzureResourceManager | Where-Object Name -Like “*ResourceGroup*
Resim-3
Yukarıda görüldüğü gibi Resource Groupları yönetmek için Powershell cmdlet listesi bulunmaktadır. Dilerseniz bu cmdlet’ler için Get-Help yardımıyla açıklamalarını ve kullanım yöntemlerini görebilirsiniz. Mevcut Azure hesabı içerisinde bulunan tüm Resource Group isimleri çağırmak için kullanacağımız cmdlet:
# Tanımlı olan Subscription içerisinden Resource Groupları çağırır.
Get-AzureResourceGroup
Resim-4
Çıkan sonuçta Azure hesabımın içerisinde olan tüm Resource Group’ların listesi gelmektedir. Çıkan sonuç içerisinde, Resource Group Adı, Region, ResourceId(SubscriptionId) gibi bilgiler yer almaktadır. Azure hesabı içerisindeki tüm Resource Groupları değil, cmdlet içerisine parametre kullanarak spesifik Resource Group bilgilerini getirelim. Bunun için “-Name” parametresine Resource Group adını yazmanız yeterlidir.
# Spesifik Resource Grup sorgulama
Get-AzureResourceGroup -Name BAResourceGroup
Resim-5
Parametre ile Resource Group adını gönderdiğimiz zaman, Powershell çıktısı biraz değişti. Sebebi ise artık Resource, Permissions Property karşımıza geldi ve karşılarında bizler için anlamlı değerler var. Resources alanında bize sorgu yaptığımız Resource Group içerisinde olan kaynaklarımızın listesi mevcut. Type kısmına dikkat ederseniz, hangi kaynak birimden geldiğini görebilirsiniz. Permissions kısmı ise, yazımızın başında bahsettiğimiz RBAC kavramı ile ilgili yani siz Resource Group için yetki devri yaptığınız zaman tüm yetkili kısmında tiplerini görebileceksiniz.
Şimdi ise “New-AzureResourceGroup” cmdlet ile yeni bir Resource Group yaratalım. Oluşturma işlemi başlamadan önce Resource Group için iki adet bilgiye ihtiyacımız var. Bunlar, Region(Location) ve Resource Group adıdır.
# Yeni ResourceGroup oluşturma. Name ve Location Parametresi zorunludur
New-AzureResourceGroup -Name HG-TestResourceGroup -Location WestEurope
Resim-6
Powershell ile Tag kullanımı
İsterseniz Powershell ile yaratmış olduğumuz Resource Group oluşup oluşmadığını kontrol edebilirsiniz. Resource Group ile gelen özelliklerini ilk yazımızda bahsetmiştik. “Tag(etiketleme)” yapısı ile yönetimde kolaylıklar sağladığından bahsettim. Şimdi ise, Resource Group oluştururken “Tag(etiket)” ekleyerek oluşturmasını gerçekleştirelim. Yeni bir Resource Group yaratırken kullandığımız cmdlet içerisine parametre olarak “Tag” gönderirsek bu işlemi kolayca gerçekleştirebiliriz.
Azure içerisindeki “Tag(etiket)” yapısı “Key” ve “Value” olarak yapılandırılmıştır. Buda bize Powershell üzerinden bir Array oluşturup ilgili parametreye göndermemiz yeterli olacaktır.
# Array oluşturur. Key – Value değerleri belirlenir.
$TagsList = New-Object System.Collections.ArrayList;
$TagsList.Add(@{Name=”AzureAdmin”; Value=”Hasan”})
#Resource Group oluşturma
New-AzureResourceGroup -Name ResourceGroupWithTags -Location WestEurope -Tag $Tags
Resim-7
Yukarıda görüldüğü gibi Powershell ile yeni bir Resource Group oluşturduk. Bununla beraber oluşturma işlemi sırasında cmdlet içerisine “Tag (etiket)” gönderdik ve oluşturma sırasında eklediğimiz “Tag” detayları ile oluşturuldu. Hızlıca, dilerseniz bunu Preview Portal üzerinden kontrol edelim.
Resim-8
Herhangi bir Resource Group dilerseniz Powershell ile silebilirsiniz. Bunun için Kullanmanız gereken cmdlet yukarıdaki listede mevcut. “Remove-AzureResourceGroup –Name ResourceGroupAdı” şeklinde kullanırsanız istediğiniz Resource Group silebilirsiniz.
Remove-AzureResourceGroup -Name ResourceGroupWithTags -Confirm:$false
Resim-9
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar