Azure Otomasyonu’nda runbook yürütme

Azure Otomasyonu’nda işlem otomasyonu PowerShell, PowerShell İş Akışı ve grafik runbook’ları oluşturmanıza ve yönetmenize olanak tanır. Ayrıntılar için bkz. runbook'ları Azure Otomasyonu.

Otomasyon, runbook’larınızı içlerinde tanımlanan mantık temelinde yürütür. Bir runbook kesintiye uğrarsa başlangıçta yeniden başlatılır. Bu davranış, geçici sorunlar oluşursa yeniden başlatılmasını destekleyen runbook'lar yazmanızı gerektirir.

Azure Otomasyonu'da bir runbook başlatmak, runbook'un tek bir yürütme örneği olan bir iş oluşturur. Her iş, Azure aboneliğinizle bağlantı oluşturarak Azure kaynaklarına erişir. İş, veri merkezinizdeki kaynaklara yalnızca bu kaynaklara genel buluttan erişilebiliyorsa erişebilir.

Azure Otomasyonu runbook yürütme sırasında her işi çalıştırmak için bir çalışan atar. Çalışanlar birçok Otomasyon hesabı tarafından paylaşılırken, farklı Otomasyon hesaplarından işler birbirinden yalıtılır. İş isteklerinizi hangi çalışan hizmetlerinin sunabileceğini denetleyemezsiniz.

Azure portalında runbook'ların listesini görüntülediğinizde, her runbook için başlatılan her işin durumu gösterilir. Azure Otomasyonu iş günlüklerini en fazla 30 gün boyunca depolar.

Aşağıdaki diyagramda PowerShell runbook'ları, PowerShell İş Akışı runbook'ları ve grafik runbook'lar için bir runbook işinin yaşam döngüsü gösterilmektedir.

Job Statuses - PowerShell Workflow

Dekont

Kişisel verileri görüntüleme veya silme hakkında bilgi için bkz. GDPR için Azure Veri Nesnesi İstekleri. GDPR hakkında daha fazla bilgi için Microsoft Güven Merkezi'nin GDPR bölümüne ve Hizmet Güveni portalının GDPR bölümüne bakın.

Runbook yürütme ortamı

Azure Otomasyonu'deki runbook'lar bir Azure korumalı alanında veya Karma Runbook Çalışanı'nda çalıştırılabilir.

Runbook'lar Azure'daki kaynaklarda kimlik doğrulaması ve çalıştırma için tasarlandıklarında, bir Azure korumalı alanında çalışır. Azure Otomasyonu korumalı alanda runbook yürütme sırasında her işi çalıştırmak için bir çalışan atar. Çalışanlar birçok Otomasyon hesabı tarafından paylaşılırken, farklı Otomasyon hesaplarından işler birbirinden yalıtılır. Aynı korumalı alanı kullanan işler, korumalı alanın kaynak sınırlamalarına bağlıdır. Azure korumalı alan ortamı etkileşimli işlemleri desteklemez. tüm işlem dışı COM sunucularına erişimi engeller ve runbook'unuzda Win32 sağlayıcısına WMI çağrıları yapmayı desteklemez.  Bu senaryolar yalnızca runbook'u bir Windows Karma Runbook Çalışanı üzerinde çalıştırarak desteklenir.

Runbook'ları doğrudan rolü barındıran bilgisayarda ve ortamdaki yerel kaynaklarda çalıştırmak için karma runbook Çalışanı da kullanabilirsiniz. Azure Otomasyonu runbook'ları depolar ve yönetir ve sonra bunları atanmış bir veya daha fazla bilgisayara teslim eder.

Azure Depolama, Azure Key Vault veya Azure SQL'de Azure Güvenlik Duvarı etkinleştirilmesi, söz konusu hizmetler için Azure Otomasyonu runbook'lardan erişimi engeller. Otomasyon, güvenilen hizmetler listesinin bir parçası olmadığından, güvenilen Microsoft hizmetleri izin veren güvenlik duvarı özel durumu etkinleştirildiğinde bile erişim engellenir. Etkin bir güvenlik duvarıyla erişim yalnızca Karma Runbook Çalışanı ve sanal ağ hizmet uç noktası kullanılarak yapılabilir.

Dekont

  • Linux Karma Runbook Çalışanı üzerinde çalıştırmak için betiklerinizin imzalanması ve çalışanın buna göre yapılandırılması gerekir. Alternatif olarak, imza doğrulaması kapatılmalıdır.
  • Runbook yürütmesi korumalı alanın saat dilimine bağlı olmamalıdır.

Aşağıdaki tabloda, önerilen yürütme ortamının listelendiği bazı runbook yürütme görevleri listelenmektedir.

Görev Öneri Notlar
Azure kaynaklarıyla tümleştirme Azure Korumalı Alanı Azure'da barındırılan kimlik doğrulaması daha kolaydır. Azure VM'de Karma Runbook Çalışanı kullanıyorsanız yönetilen kimliklerle runbook kimlik doğrulamayı kullanabilirsiniz.
Azure kaynaklarını yönetmek için en iyi performansı elde etme Azure Korumalı Alanı Betik aynı ortamda çalıştırılır ve bu da daha az gecikme süresine sahiptir.
operasyonel maliyetleri en aza indirme Azure Korumalı Alanı İşlem yükü yoktur ve VM'ye gerek yoktur.
Uzun süre çalışan betiği yürütme Karma Runbook Çalışanı Azure korumalı alanlarının kaynak sınırları vardır.
Yerel hizmetlerle etkileşim kurma Karma Runbook Çalışanı Konak makineye veya diğer bulut ortamlarındaki veya şirket içi ortamdaki kaynaklara doğrudan erişin.
Üçüncü taraf yazılım ve yürütülebilir dosyalar gerektir Karma Runbook Çalışanı İşletim sistemini yönetirsiniz ve yazılım yükleyebilirsiniz.
Runbook ile dosya veya klasör izleme Karma Runbook Çalışanı Karma Runbook Çalışanı üzerinde bir İzleyici görevi kullanın.
Yoğun kaynak kullanımlı betik çalıştırma Karma Runbook Çalışanı Azure korumalı alanlarının kaynak sınırları vardır.
Belirli gereksinimleri olan modülleri kullanma Karma Runbook Çalışanı Bazı örnekler şunlardır:
WinSCP - winscp.exe
IIS yönetimine bağımlılık - IIS'yi etkinleştirme veya yönetme bağımlılığı
Yükleyici ile modül yükleme Karma Runbook Çalışanı Korumalı alan modülleri kopyalamayı desteklemelidir.
4.7.2 sürümünden farklı .NET Framework sürümü gerektiren runbook'ları veya modülleri kullanma Karma Runbook Çalışanı Azure korumalı alanları .NET Framework 4.7.2'yi destekler ve farklı bir sürüme yükseltme desteklenmez.
Yükseltme gerektiren betikleri çalıştırma Karma Runbook Çalışanı Korumalı alanlar yükseltmeye izin vermez. Karma Runbook Çalışanı ile UAC'yi kapatabilir ve yükseltme gerektiren komutu çalıştırırken Invoke-Command kullanabilirsiniz.
Windows Yönetim Araçları'na (WMI) erişim gerektiren betikleri çalıştırma Karma Runbook Çalışanı Buluttaki korumalı alanlarda çalışan işler WMI sağlayıcısına erişemez.

Korumalı alanda geçici depolama

Runbook mantığınızın bir parçası olarak geçici dosyalar oluşturmanız gerekiyorsa, Azure'da çalışan runbook'lar için Azure korumalı alanında Temp klasörünü (diğer bir ifadeyle $env:TEMP) kullanabilirsiniz. Tek sınırlama, her korumalı alan için kota olan 1 GB'tan fazla disk alanı kullanamamanızdır. PowerShell iş akışlarıyla çalışırken, PowerShell iş akışları denetim noktaları kullandığından ve betik farklı bir korumalı alanda yeniden denenebildiğinden bu senaryo bir soruna neden olabilir.

Karma korumalı alan ile, Karma Runbook Çalışanı'nda depolama kullanılabilirliğine göre kullanabilirsiniz C:\temp . Ancak Azure VM önerilerine göre kalıcı olması gereken veriler için Windows veya Linux'ta geçici diski kullanmamalısınız.

Kaynaklar

Runbook'larınız VM'ler, ağ ve ağdaki kaynaklar gibi kaynaklarla ilgilenmek için mantık içermelidir. Kaynaklar bir Azure aboneliğine bağlıdır ve runbook'lar herhangi bir kaynağa erişmek için uygun kimlik bilgileri gerektirir. Runbook'taki kaynakları işleme örneği için bkz . Kaynakları işleme.

Güvenlik

Azure Otomasyonu, kaynaklarınız için güvenlik sağlamak ve Linux sistemlerinde güvenliğin aşılmış olduğunu algılamak için Bulut için Microsoft Defender kullanır. Kaynaklar Azure'da olsun veya olmasın iş yükleriniz arasında güvenlik sağlanır. Bkz. Azure Otomasyonu kimlik doğrulamasına giriş.

Bulut için Defender, vm'de imzalı veya imzasız tüm betikleri çalıştırabilen kullanıcılara kısıtlamalar yerleştirir. Vm'ye kök erişimi olan bir kullanıcıysanız, makineyi dijital imzayla açıkça yapılandırmanız veya kapatmanız gerekir. Aksi takdirde, yalnızca Otomasyon hesabı oluşturduktan ve uygun özelliği etkinleştirdikten sonra işletim sistemi güncelleştirmelerini uygulamak için bir betik çalıştırabilirsiniz.

Abonelikler

Azure aboneliği , Ücretlendirildiğiniz bir veya daha fazla bulut tabanlı hizmeti kullanmak için Microsoft ile yapılan bir sözleşmedir. Azure Otomasyonu için her abonelik bir Azure Otomasyonu hesabına bağlanır ve hesapta birden çok abonelik oluşturabilirsiniz.

Kimlik Bilgileri

Runbook, Azure veya üçüncü taraf sistemler için herhangi bir kaynağa erişmek için uygun kimlik bilgileri gerektirir. Bu kimlik bilgileri Azure Otomasyonu, Key Vault vb. içinde depolanır.

Azure İzleyici

Azure OtomasyonuMakine işlemlerini izlemek için Azure İzleyici. İşlemler için Log Analytics çalışma alanı ve Log Analytics aracısı gerekir.

Windows için Log Analytics aracısı

Windows için Log Analytics aracısı, Windows VM'lerini ve fiziksel bilgisayarları yönetmek için Azure İzleyici ile birlikte çalışır. Makineler Azure'da veya yerel veri merkezi gibi Azure dışı bir ortamda çalışıyor olabilir.

Dekont

Windows için Log Analytics aracısı daha önce Microsoft Monitoring Agent (MMA) olarak biliniyordu.

Linux için Log Analytics aracısı

Linux için Log Analytics aracısı, Windows aracısına benzer şekilde çalışır, ancak Linux bilgisayarlarını Azure İzleyici'ye bağlar. Aracı, kök izinler gerektiren komutları yürüten belirli hizmet hesaplarıyla birlikte yüklenir. Daha fazla bilgi için bkz . Hizmet hesapları.

Log Analytics aracı günlüğü konumunda /var/opt/microsoft/omsagent/log/omsagent.logbulunur.

Runbook izinleri

Bir runbook,kimlik bilgileri aracılığıyla Azure'da kimlik doğrulaması için izinlere ihtiyaç duyar. Bkz. Azure Otomasyonu kimlik doğrulamasına genel bakış.

Modül

Azure Otomasyonu şu PowerShell modüllerini içerir:

  • Orchestrator.AssetManagement.Cmdlets - yalnızca Runbook'ları Azure korumalı alan ortamında veya Bir Windows Karma Runbook Çalışanı'nda çalıştırdığınızda kullanılabilen birkaç iç cmdlet içerir. Bu cmdlet'ler, Otomasyon hesabı kaynaklarınızla etkileşim kurmak için Azure PowerShell cmdlet'ler yerine kullanılacak şekilde tasarlanmıştır.
  • Az.Automation - AzureRM Otomasyonu modülünün yerini alan Azure Otomasyonu etkileşim kurmak için önerilen PowerShell modülü. Otomasyon hesabı oluşturduğunuzda ve bunları kendiniz içeri aktarmanız gerektiğinde Az.Automation modülü otomatik olarak dahil edilmez.
  • AzureRM.Automation - Otomasyon hesabı oluşturduğunuzda varsayılan olarak yüklenir.

Ayrıca, runbook'larınızın ve DSC yapılandırmalarınızın gerektirdiği cmdlet'leri temel alan yüklenebilir modüller de desteklenir. Runbook'larınız ve DSC yapılandırmalarınız için kullanılabilen modüllerin ayrıntıları için bkz. Azure Otomasyonu'de modülleri yönetme.

Sertifikalar

Azure Otomasyonu, Azure'da kimlik doğrulaması için sertifikalar kullanır veya bunları Azure'a veya üçüncü taraf kaynaklara ekler. Sertifikalar, runbook'lar ve DSC yapılandırmaları tarafından erişim için güvenli bir şekilde depolanır.

Runbook'larınız, bir sertifika yetkilisi (CA) tarafından imzalanmayan otomatik olarak imzalanan sertifikaları kullanabilir. Bkz. Yeni sertifika oluşturma.

İşler

Azure Otomasyonu, işleri aynı Otomasyon hesabından çalıştırmak için bir ortamı destekler. Tek bir runbook'ta aynı anda çalışan birçok iş olabilir. Aynı anda ne kadar çok iş çalıştırırsanız, bunlar aynı korumalı alana o kadar sık gönderilebilir. Korumalı alanda en fazla 10 iş çalıştırılabilir. Hiçbir iş yürütülürken korumalı alan kaldırılır; bu nedenle, dosyaları kaydetmek için kullanılmamalıdır.

Aynı korumalı alan işleminde çalışan işler birbirini etkileyebilir. Bir örnek, Disconnect-AzAccount cmdlet'ini çalıştırmaktır. Bu cmdlet'in yürütülmesi, paylaşılan korumalı alan işlemindeki her runbook işinin bağlantısını keser. Bu senaryoyla çalışma örneği için bkz . Eşzamanlı işleri engelleme.

Dekont

Azure korumalı alanında çalışan bir runbook'tan başlatılan PowerShell işleri tam PowerShell dil modunda çalışmayabilir.

İş durumları

Aşağıdaki tabloda bir iş için mümkün olan durumlar açıklanmaktadır. Azure portalında tüm runbook işleri için durum özetini görüntüleyebilir veya belirli bir runbook işinin ayrıntılarını inceleyebilirsiniz. Runbook iş durumunu ve iş akışlarını iletmek için Log Analytics çalışma alanınızla tümleştirmeyi de yapılandırabilirsiniz. Azure İzleyici günlükleriyle tümleştirme hakkında daha fazla bilgi için bkz . otomasyondan Azure İzleyici günlüklerine iş durumunu ve iş akışlarını iletme. Ayrıca bkz. Runbook'taki durumlarla çalışma örneği için İş durumlarını alma.

Status Tanım
Etkinleştirme İş etkinleştiriliyor.
Tamamlandı İş başarıyla tamamlandı.
Yapılamadı Grafik veya PowerShell İş Akışı runbook'u derlenemiyor. PowerShell runbook'u başlatılamadı veya işin bir özel durumu vardı. Bkz. runbook türlerini Azure Otomasyonu.
Başarısız oldu, kaynaklar bekleniyor İş, üç kez eşit paylaşım sınırına ulaştığı ve her seferinde aynı denetim noktasından veya runbook'un başından başladığı için başarısız oldu.
Kuyruğa alındı İş, başlatılabilmesi için Otomasyon çalışanı üzerindeki kaynakların kullanılabilir olmasını bekliyor.
Sürdürülüyor Sistem, askıya alındıktan sonra işi devam ettiriyor.
Çalışıyor İş çalışıyor.
Çalışıyor, kaynakları bekliyor İş, eşit pay sınırına ulaştığı için kaldırılmıştır. Son denetim noktasından kısa süre sonra devam edecektir.
Başlatılıyor İş bir çalışana atanmış ve sistem tarafından başlatılıyor.
Durduruldu İş tamamlanmadan kullanıcı tarafından durduruldu.
Durduruluyor Sistem işi durduruyor.
Askıya Alındı Yalnızca grafik ve PowerShell İş Akışı runbook'ları için geçerlidir. İş; kullanıcı, sistem veya runbook'taki bir komut tarafından askıya alındı. Bir runbook'un denetim noktası yoksa, baştan başlar. Denetim noktası varsa, yeniden başlatılabilir ve son denetim noktasından devam edebilir. Sistem yalnızca bir özel durum oluştuğunda runbook'u askıya alır. Varsayılan olarak değişken ErrorActionPreference , işin bir hata üzerinde çalışmaya devam ettiğini gösteren Devam olarak ayarlanır. Tercih değişkeni Durdur olarak ayarlanırsa, iş bir hatada askıya alır.
Askıya alınıyor Yalnızca grafik ve PowerShell İş Akışı runbook'ları için geçerlidir. Sistem, kullanıcının isteği üzerine işi askıya almaya çalışıyor. Runbook, askıya alınmadan sonraki denetim noktasına erişmelidir. Son denetim noktasını zaten geçtiyse, askıya alınmadan önce tamamlar.

Etkinlik günlüğü

Azure Otomasyonu’nda runbook’lar yürütüldüğünde, ayrıntılar Otomasyon hesabı için bir etkinlik günlüğüne yazılır. Günlüğü kullanma ayrıntıları için bkz . Etkinlik günlüğünden ayrıntıları alma.

Özel durumlar

Bu bölümde, runbook'larınızdaki özel durumları veya aralıklı sorunları işlemenin bazı yolları açıklanmaktadır. WebSocket özel durumu örnek olarak verilmiştir. Doğru özel durum işleme, geçici ağ hatalarının runbook'larınızın başarısız olmasına neden olmasını önler.

ErrorActionPreference

ErrorActionPreference değişkeni, PowerShell'in sonlandırılmayan bir hataya nasıl yanıt vereceğini belirler. Sonlandırma hataları her zaman sonlandırılır ve etkilenmez ErrorActionPreference.

Runbook kullandığındaErrorActionPreference, Get-ChildItem cmdlet'indeki gibi PathNotFound normalde sonlandırılmayan bir hata runbook'un tamamını durdurur. Aşağıdaki örnekte kullanımı gösterilmektedir ErrorActionPreference. Betik durduğundan son Write-Output komutu hiçbir zaman yürütülemez.

$ErrorActionPreference = 'Stop'
Get-ChildItem -path nofile.txt
Write-Output "This message will not show"

Catch Finally'i deneyin

Try Catch Finally , sonlandırıcı hataları işlemek için PowerShell betiklerinde kullanılır. Betik, belirli özel durumları veya genel özel durumları yakalamak için bu mekanizmayı kullanabilir. deyimi catch , hataları izlemek veya işlemek için kullanılmalıdır. Aşağıdaki örnek, var olmayan bir dosyayı indirmeye çalışır. Özel durumu yakalar System.Net.WebException ve diğer özel durumlar için son değeri döndürür.

try
{
   $wc = new-object System.Net.WebClient
   $wc.DownloadFile("http://www.contoso.com/MyDoc.doc")
}
catch [System.Net.WebException]
{
    "Unable to download MyDoc.doc from http://www.contoso.com."
}
catch
{
    "An error occurred that could not be resolved."
}

Throw

Throw , sonlandırıcı bir hata oluşturmak için kullanılabilir. Bu mekanizma, runbook'ta kendi mantığınızı tanımlarken yararlı olabilir. Betik onu durdurması gereken bir ölçütle karşılaşıyorsa, durdurmak için deyimini throw kullanabilir. Aşağıdaki örnek, gerekli bir işlev parametresini göstermek için bu deyimi kullanır.

function Get-ContosoFiles
{
  param ($path = $(throw "The Path parameter is required."))
  Get-ChildItem -Path $path\*.txt -recurse
}

Hatalar

Runbook'larınızın hataları işlemesi gerekir. Azure Otomasyonu, sonlandıran ve sonlandırılmayan iki tür PowerShell hatasını destekler.

Sonlandırıcı hatalar oluştuğunda runbook yürütmesini durdurur. Runbook başarısız iş durumuyla durdurulur.

Sonlandırılamayan hatalar, bir betiğin oluştuktan sonra bile devam etmelerini sağlar. Sonlandırıcı olmayan bir hata örneği, runbook cmdlet'ini var olmayan bir yol ile kullandığında Get-ChildItem oluşan hatadır. PowerShell, yolun mevcut olmadığını görür, bir hata oluşturur ve sonraki klasöre devam eder. Bu örnekteki hata runbook işi durumunu Başarısız olarak ayarlamaz ve iş tamamlanmış bile olabilir. Bir runbook'u sonlandırılmayan bir hatada durmaya zorlamak için cmdlet'inde kullanabilirsiniz ErrorAction Stop .

Çağrı işlemleri

Azure korumalı alanlarında çalışan runbook'lar yürütülebilir dosyalar (.exe dosyaları) veya alt işlemler gibi çağrı işlemlerini desteklemez. Bunun nedeni, Azure korumalı alanının, temel alınan tüm API'lere erişemeyecek bir kapsayıcıda paylaşılan bir işlem çalıştırması olmasıdır. Üçüncü taraf yazılım gerektiren senaryolar veya alt işlemlere çağrılar için, Karma Runbook Çalışanı üzerinde bir runbook yürütmeniz gerekir.

Cihaz ve uygulama özellikleri

Azure korumalı alanlarındaki runbook işleri hiçbir cihaza veya uygulama özelliğine erişemez. Windows'ta performans ölçümlerini sorgulamak için kullanılan en yaygın API WMI'dir ve yaygın ölçümlerden bazıları bellek ve CPU kullanımıdır. Ancak bulutta çalışan işler Web Tabanlı Kurumsal Yönetim'in (WBEM) Microsoft uygulamasına erişemiyorsa, hangi API'nin kullanıldığı önemli değildir. Bu platform, cihaz ve uygulama özelliklerini tanımlamak için endüstri standartları sağlayan Ortak Bilgi Modeli (CIM) üzerine kurulmuştur.

Web kancaları

Azure DevOps Services ve GitHub gibi dış hizmetler, Azure Otomasyonu'da bir runbook başlatabilir. Bu tür bir başlangıç yapmak için hizmet, tek bir HTTP isteği aracılığıyla bir web kancası kullanır. Web kancası kullanımı, runbook'ların tam bir Azure Otomasyonu özelliği uygulanmadan başlatılmasını sağlar.

Paylaşılan kaynaklar

Azure, kaynakları buluttaki tüm runbook'lar arasında paylaşmak için fair share adlı bir kavram kullanır. Azure, adil paylaşımı kullanarak üç saatten uzun süre çalışan tüm işleri geçici olarak kaldırır veya durdurur. PowerShell runbook'ları ve Python runbook'ları için işler durdurulur ve yeniden başlatılmaz ve iş durumu Durduruldu olur.

Uzun süre çalışan Azure Otomasyonu görevleri için Karma Runbook Çalışanı kullanılması önerilir. Karma Runbook Çalışanları adil paylaşımla sınırlı değildir ve runbook'un ne kadar süreyle yürütülebileceğiyle ilgili bir sınırlamaya sahip değildir. Diğer iş sınırları hem Azure korumalı alanları hem de Karma Runbook Çalışanları için geçerlidir. Karma Runbook Çalışanları üç saatlik adil paylaşım sınırıyla sınırlı olmasa da, beklenmeyen yerel altyapı sorunlarından yeniden başlatmaları destekleyen çalışanlarda çalıştırılacak runbook'lar geliştirmeniz gerekir.

Bir diğer seçenek de alt runbook'ları kullanarak bir runbook'u iyileştirmektir. Örneğin, runbook'unuz aynı işlevi birkaç kaynakta,örneğin birkaç veritabanında veritabanı işlemiyle döngüye alabilir. Bu işlevi bir alt runbook'a taşıyabilir ve runbook'unuzun Start-AzAutomationRunbook kullanarak bunu çağırmasını sağlayabilirsiniz. Alt runbook'lar ayrı işlemlerde paralel olarak yürütülür.

Alt runbook'ların kullanılması, üst runbook'un tamamlanması için gereken toplam süreyi azaltır. Runbook'unuz Get-AzAutomationJob cmdlet'ini kullanarak alt runbook tamamlandıktan sonra daha fazla işlemi varsa, alt runbook'un iş durumunu kontrol edebilir.

Sonraki adımlar