System Center Operations Manager 2007 R2 – Özel Yönetim Paketlerinin (Custom Management Pack) Yedeklenmesi

Powershell ile Yönetim Paketlerinin Dışarı Aktarılması

Oluşturduğunuz özel yönetim paketlerinizi Operations Console -> Administration -> Management Packs altından ilgili yönetim paketine sağ tıklayıp “Export Management Pack…” seçeneğini seçerek dışarı aktarabilirsiniz. Ancak birden çok paketi dışarı aktarmak istediğinizde bu şekilde her bir dışarı aktarma yönetminin nasıl bir zaman kaybına yol açacağını tahmin edebilirsiniz (düşünün ki şu anda bizim sistemimizde 26 adet özel yönetim paketimiz var. Her akşam aldığımız zamanlanmış yedeklerde bu yönetim paketlerinin en son halini alabilmek için, 26 kere sağ tık yapıp “Export Management Pack”i seçip sonrasında da paketin kaydedileceği klasörü seçeceğim. Son derece can sıkıcı.)

Yönetim paketlerimizi Powershell kullanarak kolayca aktarabiliriz. Bunun için Operations Manager Shell’i açıp aşağıdaki komutu kullanabiliriz:

Get-Managementpack | where{$_.DisplayName –eq “yönetim_paketi_adı”} | Export-Managementpack –Path “yönetim_paketinin_kaydedileceği_dizin”

Örneğin dışarı aktaracağımız yönetim paketinin adı Biztalk Sunuculari ve kaydetmek istediğimiz yer D:SCOM_Yonetim_Paketleri ve vermek istediğimiz dosya adı Biztalk.Sunuculari.mp ise, komutumuz şu şekilde olacaktır (dosya adı otomatik olarak verileceğinden ayrıca belirtmenize gerek yok):

Get-Managementpack | where{$_.DisplayName –eq “Biztalk Sunuculari”} | Export-Managementpack -Path “D:SCOM_Yonetim_Paketleri”

Ancak burada kilit nokta bu komutu Operations Manager Shell altında çalıştırabiliyor olmamız. Ya da başka bir deyişle eğer biz bir Powershell komut penceresi açıp bu komutu çalıştırmaya kalkarsak aşağıdaki mesajı alırız:

get-managementpack komutunu çalıştırdığımızda aldığımız hata.

Mesaj bize Powershell tarafından bu komutun anlaşılamadığını söylüyor. Powershell’in bu komutu anlayabilmesi için onu Operations Manager Shell’e çevirmemiz gerekiyor. Bunun için de yapmamız gereken Operations Manager eklentisini (snap-in) Powershell’e eklemek. Komutumuz şöyle:

Add-Pssnapin "Microsoft.EnterpriseManagement.OperationsManager.Client"

Bu aşamada Operations Manager Shell özelliklerini Powershell penceremize eklemiş olduk. Şimdiki adımda Operations Manager sağlayıcısını (Operations Manager Provider) Monitoring durumuna geçirmek. Bu şekilde Operations Manager altında bulunan daha özel nesneler (yönetim paketleri, gruplar vb.) işlem yapabiliriz. Komutumuz aşağıdaki gibi:

Set-Location "OperationsManagerMonitoring::"

Şimdi Kök Yönetim Sunucumuza bağlanmamız gerekecek. Komutları Kök Yönetim Sunucu üzerinde çalıştırıyor dahi olsak, bu bağlantıyı kurmamız gerekiyor çünkü kullandığımız Powershell penceresi, üzerine Operations Manager eklentisi kurulmuş bir Powershell penceresi, Operations Manager’ın yerel Kabuğu (Shell) değil. Komutta ben Kök Yönetim Sunucusunun NETBIOS ismini kullandım (SCOMRMS), siz FQDN’ini kullanabilirsiniz:

New-Managementgroupconnection -connectionstring:SCOMRMS

Artık komutları kullanacağımız konum Kök Yönetim Sunucusu. Bunu da komut ile belirtmemiz gerekiyor:

Set-Location SCOMRMS

Kök Yönetim Sunucumuza bağlandık, konumumuzu belirttik, şimdi artık yönetim paketlerimizi dışarı aktarabiliriz:

Get-Managementpack | where {$_.DisplayName -eq "BizTalk Sunuculari"} | Export-ManagementPack -Path " D:SCOM_Yonetim_Paketleri"

Bütün bunları bir araya getirdiğimizde, Powershell betiğimiz aşağıdaki gibi olacak:

Add-Pssnapin "Microsoft.EnterpriseManagement.OperationsManager.Client";
Set-Location "OperationsManagerMonitoring::";
New-Managementgroupconnection -connectionstring:SCOMRMS;
Set-Location SCOMRMS;
Get-Managementpack | where {$_.DisplayName -eq "BizTalk Sunuculari"} | Export-ManagementPack -Path "D:SCOM_Yonetim_Paketleri"

Son satırı kopyalayıp yapıştırarak birden çok yönetim paketini dışarı aktarabilirsiniz. Örneğin Exchange sunucularınız için özelleştirmelerinizi “Exchange Sunuculari” yönetim paketine kaydetti iseniz, o zaman yukarıdaki betiğin sonuna aşağıdaki satırı ekleyebilir ve aynı betik içinde bir de Exchange Sunuculari yönetim paketinizi de dışarı aktarabilirsiniz:

Get-Managementpack | where {$_.DisplayName -eq "Exchange Sunuculari"} | Export-ManagementPack -Path "D:SCOM_Yonetim_Paketleri"

Bu betiği bir metin editor –Notepad bile olur- kopyalayıp yapıştırıp gerekli düzenlemeleri yaptıktan sonra disari_aktar.ps1 olarak yönetim paketlerinizi dışarı aktaracağınız dizine kopyalayın [alert]ps1 uzantısı ile kaydedebilmek için Dosya -> Farklı kaydet dediğinizde dosya adını ve uzantısını tırnak işaretleri kullanarak, yani "disari_aktar.ps1" şeklinde yazmanız gerekiyor, aksi takdirde dosyanız disari_aktar.ps1.txt olarak kaydedilir.[/alert]

Eğer henüz yapmadıysanız, imzalanmamış (unsigned) betikleri çalıştırmanız için Powershell’e izin vermeniz gerekir. Bunun için bir Powershell penceresi açarak aşağıdaki komutu çalıştırmanız gerekir:

Set-ExecutionPolicy Unrestricted

Ancak bunun bir güvenlik açığı olabileceğini de unutmayın; Powershell artık kendisi tarafından çağırılan tüm betikleri imzasına bakmaksızın çalıştıracaktır.

Powershell Betiğimizin Zamanlanarak Çalıştırılması

Powershell betiğini zamanlayarak çalıştırmak için birçok yöntem var, ancak biz en basit yöntem olan Zamanlanmış Görevleri (Scheduled Tasks) kullanacağız. Yapmamız gereken tek şey ise, bir bat dosyası oluşturup, bu dosyayı zamanlanmış görev haline getirmek.

Bat dosyamız için tek bir satır yeterli:

powershell D:SCOM_Yonetim_Paketleridisari_aktar.ps1

Ancak biz bir kere bu betiği çalıştırdığımızda D:SCOM_Yonetim_Paketleri klasörü içinde xml biçiminde bir sürü yönetim paketi olacak. Bu paketlerin üzerine yazmak vs. uğraşmamak için once klasörü boşaltmak daha “temiz” bir çözüm olacak:

del D:SCOM_Yonetim_Paketleri*.xml

Zamanlanmış bat dosyamız aşağıdaki iki satırdan oluşacak:

del D:SCOM_Yonetim_Paketleri*.xml
powershell D:SCOM_Yonetim_Paketleridisari_aktar.ps1

Bu bat dosyasını da yedek alacağımız dizinin içine “scom_disari_aktar.bat” olarak kaydedelim.

Bu betik dosyalarını yedek alınacak dizinin içine kopyalamamızın esprisi şu: yedeklemede bu dizini seçtiğimiz zaman betik dosyaları da seçilmiş ve yedeklenmiş olacak. Olası bir felaket durumunda yönetim paketleri ile birlikte yedekleme betiklerimiz de elimizde olacak.

Reklamlar

System Center Operations Manager 2007 R2 – Özel Yönetim Paketlerinin (Custom Management Pack) Yedeklenmesi” üzerine bir düşünce

  1. Geri bildirim: System Center Operations Manager 2007 R2 – Kök Yönetim Sunucusunun Yedeklenmesi | Tolga'nın bir şeyler paylaştığı kişisel blog'u

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s