Azure Otomasyonu’nda runbook yürütme

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

Otomasyon runbook'larınızı kendi içinde tanımlanan mantığa göre yürütür. Bir runbook kesintiye uğrarsa başlangıçta yeniden başlatılır. Bu davranış, geçici sorunlar oluştuğunda yeniden başlatılmasını destekleyen runbook'lar yazmanızı gerektirir.

Runbook'un Azure Otomasyonu runbook'un tek bir yürütme örneği olan bir iş oluşturur. Her iş, Azure aboneliğinize bağlantı yaparak Azure kaynaklarına erişer. İş yalnızca bu kaynaklara genel buluttan erişililse veri merkeziniz içinde bulunan kaynaklara erişebilirsiniz.

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 diğerlerinden yalıtılır. İş isteğiniz olan çalışan hizmetlerini denetlemeniz gerekir.

Runbook'ların listesini Azure portal, her runbook için başlatan her işin durumunu gösterir. 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 runbookişinin yaşam döngüsü gösterir.

İş Durumları - PowerShell İş Akışı

Not

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üven portalının GDPR bölümünebakın.

Runbook yürütme ortamı

Azure Otomasyonu runbook'lar Bir Azure korumalı alanı veya Karma Runbook Çalışanı üzerinde çalışır.

Runbook'lar Azure'daki kaynaklarda kimlik doğrulaması yapmak ve çalıştırmak için tasarlanmasa da, bir Azure korumalı alanda çalışırlar. Azure Otomasyonu, korumalı alanda runbook yürütmesi 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 diğerlerinden yalıtılır. Aynı korumalı alanı kullanan işler, korumalı alan için kaynak sınırlamalarına göre sınırlayıcıdır. Azure korumalı alan ortamı etkileşimli işlemleri desteklemez. Tüm işlem dışında COM sunucularına erişimi önler ve runbook'uzda Win32 sağlayıcısına WMI çağrıları yapma desteğine sahip değildir. Bu senaryolar yalnızca runbook'un Karma Runbook Çalışanı'Windows çalıştırarak de destekler.

Runbook'ları doğrudan rolü barındıran bilgisayarda ve ortamdaki yerel kaynaklara karşı çalıştırmak için karma Runbook Çalışanı da kullanabilirsiniz. Azure Otomasyonu runbook'ları depolar ve yönetir ve ardından bunları bir veya daha fazla atanan bilgisayarlara teslim ediyor.

Azure Azure Güvenlik Duvarı , Azure Key Vault veya Azure Depolama'SQLetkinleştirerek bu hizmetler için Azure Otomasyonu runbook'lardan erişimi engeller. Otomasyon, güvenilen hizmetler listesinin bir parçası Microsoft hizmetleri izin vermek için güvenlik duvarı özel durumu etkinleştirilse bile erişim engellenir. Etkin bir güvenlik duvarı ile erişim yalnızca Karma Runbook Çalışanı ve sanal ağ hizmet uç noktası kullanılarak gerçekilebilir.

Not

Bir Linux Karma Runbook Çalışanı üzerinde çalıştırmak için betiklerinizi imzalamanız ve çalışan uygun şekilde yapılandırılması gerekir. Alternatif olarak, imza doğrulamasının kapalı olması gerekir.

Aşağıdaki tabloda, her biri için önerilen yürütme ortamının listelenmiş olduğu bazı runbook yürütme görevleri listelenmiştir.

Görev Öneri Notlar
Azure kaynaklarıyla tümleştirin Azure Korumalı Alan Azure'da barındırılan kimlik doğrulaması daha basittir. Azure VM'de Karma Runbook Çalışanı kullanıyorsanız, yönetilen kimliklerle runbook kimlik doğrulamasını kullanabilirsiniz.
Azure kaynaklarını yönetmek için en iyi performansı elde edin Azure Korumalı Alan Betik, daha az gecikme süresi olan aynı ortamda çalıştır.
operasyonel maliyetleri en aza indirme Azure Korumalı Alan İşlem ek yükü yoktur ve VM'ye gerek yoktur.
Uzun süre çalışan betik yürütme Karma Runbook Çalışanı Azure korumalı alanlara kaynak sınırları vardır.
Yerel hizmetlerle etkileşim kurma Karma Runbook Çalışanı Konak makinesine 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ı gerektirme 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 İzleme görevi kullanın.
Yoğun kaynak kullanımı olan bir betik çalıştırma Karma Runbook Çalışanı Azure korumalı alanlara kaynak sınırları vardır.
Belirli gereksinimlere sahip modülleri kullanma Karma Runbook Çalışanı Bazı örnekler şunlardır:
WinSCP - winscp.exe
IIS yönetimi - IIS'yi etkinleştirmeye veya yönetmeye bağımlılık
Yükleyici ile modül yükleme Karma Runbook Çalışanı Korumalı alan modüllerinin kopyalamayı desteklemesi gerekir.
4.7.2'den .NET Framework sürüm gerektiren runbook'ları veya modülleri kullanma Karma Runbook Çalışanı Azure korumalı alan .NET Framework 4.7.2 sürümünü destekler ve farklı bir sürüme yükseltme desteklenmiyor.
Yükseltme gerektiren betikleri çalıştırma Karma Runbook Çalışanı Korumalı alan yükseltmeye izin vermez. Karma Runbook Çalışanı ile, yükseltme gerektiren komutu çalıştırarak UAC'ı kapatabilirsiniz ve Invoke-Command kullanabilirsiniz.
Windows Yönetim Araçları'Windows gerektiren betikleri çalıştırma Karma Runbook Çalışanı Buluttaki korumalı alanlarda çalışan işler WMI sağlayıcısına erişe değildir.

Korumalı alanda geçici depolama

Runbook mantığınız kapsamında geçici dosyalar oluşturmanız gerekirse, Azure'da çalışan runbook'lar için Azure korumalı alanı içinde Temp klasörünü $env:TEMP kullanabilirsiniz. Tek sınırlama, her korumalı alan için kota olan 1 GB'den fazla disk alanı kullanamamanızdır. PowerShell iş akışlarıyla çalışırken bu senaryo soruna neden olabilir çünkü PowerShell iş akışları denetim noktalarını kullanır ve betik farklı bir korumalı alanda yeniden denenebilirsiniz.

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

Kaynaklar

Runbook'lar, kaynaklarla(örneğin, VM'ler, ağ ve ağ kaynakları) başa baş etmek için mantık içermeli. Kaynaklar bir Azure aboneliğine bağlanır ve runbook'lar herhangi bir kaynağa erişmek için uygun kimlik bilgilerini gerektirir. Runbook'ta kaynakları işleme örneği için bkz. Kaynakları işleme.

Güvenlik

Azure Otomasyonu kaynaklarınıza güvenlik sağlamak ve Linux sistemlerindeki güvenliği algılamak için Bulut için Microsoft Defender'ı kullanır. Güvenlik, kaynakların Azure'da olup olmadığı gibi iş yükleriniz genelinde sağlanır. Bkz. Azure Otomasyonu'de kimlik doğrulamasına giriş.

Bulut için Defender, vm üzerinde imzalı veya imzasız betik çalıştıracak kullanıcılara kısıtlamalar sağlar. Vm'ye kök erişimi olan bir kullanıcıysanız, makineyi açıkça dijital imzayla yapılandırmanız veya kapatmanız gerekir. Aksi takdirde, yalnızca bir Otomasyon hesabı oluşturduk 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, ücret ödemeniz gereken bir veya daha fazla bulut tabanlı hizmeti kullanmak için Microsoft ile yapılan bir sözleşmedir. Daha Azure Otomasyonu, her abonelik bir Azure Otomasyonu hesabıyla bağlantılıdır ve hesapta birden çok abonelik oluşturabilirsiniz.

Kimlik bilgileri

Runbook ister Azure ister üçüncü taraf sistemler olsun 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 Otomasyonu, makine Azure İzleyici izleme için güvenlik özellikleri kullanır. İşlemler için bir Log Analytics çalışma alanı ve bir Log Analytics aracısı gerekir.

Windows için Log Analytics aracısı

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

Not

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 için aracıya benzer şekilde çalışır, ancak Linux bilgisayarlarını Azure İzleyici. Aracı, kök izinleri gerektiren komutları yürüten belirli hizmet hesaplarıyla yüklenir. Daha fazla bilgi için bkz. Hizmet hesapları.

Log Analytics aracı günlüğü, üzerinde /var/opt/microsoft/omsagent/log/omsagent.log bulunur.

Runbook izinleri

Runbook'un kimlik bilgileri aracılığıyla Azure'da kimlik doğrulaması için izinleri olması gerekir. Bkz. Azure Otomasyonu kimlik doğrulamasına genel bakış.

Modül

Azure Otomasyonu Aşağıdaki PowerShell modüllerini içerir:

  • Orchestrator.AssetManagement.Cmdlet'leri - yalnızca Runbook'ları Azure korumalı alan ortamında veya Windows Karma Runbook Çalışanı'Windows içerir. Bu cmdlet'ler, Otomasyon hesabı kaynaklarıyla Azure PowerShell için cmdlet'ler yerine kullanılacak şekilde tasarlanmıştır.
  • Az.Automation - AzureRM Otomasyonu modülünün yerini alan Azure Otomasyonu etkileşim için önerilen PowerShell modülü. Bir Otomasyon hesabı ekleyebilirsiniz ve bunları el ile içeri aktarmanız gerekirken Az.Automation modülü otomatik olarak dahil değildir.
  • AzureRM.Automation - Bir Otomasyon hesabı sanız varsayılan olarak yüklenir.

Runbook'larınızı ve DSC yapılandırmalarınızı gerektiren cmdlet'leri temel alan, yüklenebilir modüller de desteklenebilir. Runbook'lar ve DSC yapılandırmaları için kullanılabilen modüllerin ayrıntıları için bkz.Azure Otomasyonu.

Sertifikalar

Azure Otomasyonu Azure'da kimlik doğrulaması için sertifikaları kullanır veya bunları Azure 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, bir sertifika yetkilisi (CA) tarafından imzalanmaz 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'un aynı anda çalışan birçok işi olabilir. Aynı anda ne kadar çok iş çalıştırıldıksa aynı korumalı alandan o kadar çok iş göndere yız.

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

Not

Azure korumalı alanda çalışan bir runbook'tan başlayan PowerShell işleri tam PowerShell dil modunda çalıştırılamayabilirsiniz.

İş durumları

Aşağıdaki tabloda, bir iş için mümkün olan durumlar açıkmektedir. Tüm runbook işleri için durum özetini görüntülebilirsiniz veya belirli bir runbook işinin ayrıntılarına inebilirsiniz Azure portal. Runbook iş durumunu ve iş akışlarını iletacak şekilde Log Analytics çalışma alanınız ile tümleştirmeyi de yapılandırabilirsiniz. İş günlükleriyle tümleştirme hakkında daha fazla Azure İzleyici için bkz. Otomasyon'dan iş durumu ve iş akışlarını Azure İzleyici iletme. Ayrıca bkz. Runbook'ta durumlarla çalışma örneği için iş durumlarını alma.

Durum Açıklama
Etkinleştirme İş etkinleştirildi.
Tamamlandı İş başarıyla tamamlandı.
Başarısız Grafik veya PowerShell İş Akışı runbook'ları derlanamadı. PowerShell runbook'ları başlatılamadı veya işin özel durumu vardı. Bkz. Azure Otomasyonu runbook türleri.
Başarısız oldu, kaynak bekliyor İş, adil paylaşım sınırına üç kez ulaştığı ve her zaman aynı denetim noktasından veya runbook'un başından başladığı için başarısız oldu.
Kuyruğa alındı İş, başlatılana kadar Otomasyon çalışanının kaynaklarının kullanılabilir olması için bekliyor.
Sürdürülüyor Sistem, askıya alındıktan sonra işi devam ediyor.
Çalışma İş çalışıyor.
Çalışıyor, kaynakları bekliyor İş, adil paylaşım sınırına ulaştığı için kaldırıldı. Son denetim noktasından kısa bir süre sonra devam eder.
Başlatılıyor İş bir çalışana atanmıştır ve sistem bu işi başlatacak.
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ı. Runbook'un denetim noktası yoksa, en baştan başlar. Bir denetim noktası varsa, yeniden başlayabilir ve son denetim noktasından devam edebilir. Sistem yalnızca bir özel durum oluştuğunda runbook'ları askıya alır. Varsayılan olarak değişkeni ErrorActionPreference Devam olarak ayarlanır ve bu da işin hata üzerinde çalışmaya devam edeceğini gösterir. Tercih değişkeni Durdur olarak ayarlanırsa iş bir hatayla 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çti ise, askıya alınmadan önce tamamlanır.

Etkinlik günlüğü

Runbook'ların Azure Otomasyonu Otomasyon hesabının etkinlik günlüğüne yazması. Günlüğü kullanmanın ayrıntıları için bkz. Etkinlik günlüğünden ayrıntıları alma.

Özel durumlar

Bu bölümde runbook'larınıza özel durumları veya aralıklı sorunları işlemenin bazı yolları açık açıklamalıdır. WebSocket özel durumu örnek olarak ve bir örnektir. Doğru özel durum işleme, geçici ağ hatalarının runbook'ların başarısız olmasına neden oluyor.

ErrorActionPreference

ErrorActionPreference değişkeni, PowerShell'in sonlandırıcı olmayan bir hataya nasıl yanıt verir? Sonlandırıcı hatalar her zaman sonlandırılır ve bundan ErrorActionPreference etkilenmez.

Runbook ErrorActionPreference PathNotFound kullandığında, Get-ChildItem cmdlet'inden gelen gibi normalde sonlandıran olmayan bir hata runbook'un tamamlamasını durdurur. Aşağıdaki örnek, kullanımını ErrorActionPreference gösterir. Betik durduğunda son Write-Output komutu hiçbir zaman yürütülmez.

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

Catch Finally'i deneyin

Sonlandırıcı hataları işlemek için PowerShell betikleri içinde Catch Finally'i deneyin. 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, mevcut 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, bir runbook'ta kendi mantığınızı tanımlarken yararlı olabilir. Betik durdurması gereken bir ölçütü karşılarsa, durdurmak için throw deyimini 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 hataları işlemesi gerekir. Azure Otomasyonu, sonlandıran ve sonlandırmayan iki tür PowerShell hatası destekler.

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

Sonlandırıcı olmayan hatalar, bir betiğin ortaya çıkabilirse bile devamsına olanak sağlar. Sonlandırıcı olmayan hatalara örnek olarak, runbook mevcut olmayan bir yol ile cmdlet'ini kullandığında Get-ChildItem ortaya çıkar. PowerShell yolun mevcut olmadığını görür, bir hata oluşturur ve sonraki klasöre devam eder. Bu durumdaki hata runbook işi durumunu Başarısız olarak ayarlamaz ve iş tamamlanmış bile olabilir. Bir runbook'un sonlandırmayan bir hatada durmasını zorlamak için ErrorAction Stop cmdlet'inde kullanabilirsiniz.

İşlemleri çağırma

Azure korumalı alanlarında çalışan runbook'lar, yürütülebilir dosyalar (.exedosyaları) veya alt işlemler gibi çağrı işlemlerini desteklemez. Bunun nedeni Azure korumalı alanı, temel alınan tüm API'lere erişemeyen bir kapsayıcıda çalıştırılacak paylaşılan bir işlemdir. Üçüncü taraf yazılım veya alt işlemlerine çağrı gerektiren senaryolar için, Karma Runbook Çalışanı üzerinde bir runbook yürütmelisiniz.

Cihaz ve uygulama özellikleri

Azure korumalı alanlarında runbook işleri hiçbir cihaza veya uygulama özelliğine erişelamaz. Performans ölçümlerini sorgularken kullanılan en yaygın API Windows wmi'dır ve yaygın ölçümlerden bazıları bellek ve CPU kullanımıdır. Ancak, bulutta çalışan işler Microsoft'un Web-Based Enterprise Management(WBEM) uygulamasına erişemeyeceği için hangi API'nin kullanılı olduğu önemli değildir. Bu platform, cihaz ve Genel Bilgi Modeli özelliklerini tanımlamak için sektör standartlarını sağlayan Genel Bilgi Modeli (CIM) üzerine inşa edilmiştir.

Web Kancaları

Örneğin, Azure DevOps Services ve GitHub dış hizmetler, Azure Otomasyonu'de bir runbook başlatabilirsiniz. Bu başlatma türünü 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 uygulama özelliği olmadan Azure Otomasyonu 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 üç saat boyunca çalıştırılan tüm işi geçici olarak kaldırıyor veya durdurabiliyor. PowerShell runbook'ları ve Python runbook'ları için işler durdurulur, yeniden başlatılmaz ve iş durumu Durduruldu olur.

Uzun süre Azure Otomasyonu görevleri için Karma Runbook Çalışanı kullanılması önerilir. Karma Runbook Çalışanları adil paylaşım ile sınırlı değildir ve bir runbook'un ne kadar süreyle yürütülece ilgili bir sınırlaması yoktur. Diğer iş sınırları hem Azure korumalı alan 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ı değildir, ancak beklenmeyen yerel altyapı sorunlarından yeniden başlatmaları destekleyen çalışanlarda çalıştırılacak runbook'lar geliştirmelisiniz.

Bir diğer seçenek de alt runbook'ları kullanarak bir runbook'un en iyi duruma getirmektir. Örneğin, runbook'uz birden çok kaynakta aynı işlevde döngüye olabilir; örneğin, çeşitli veritabanlarında bir veritabanı işlemiyle. Bu işlevi bir alt runbook'a taşımak ve Runbook' un Start-AzAutomationRunbookkullanarak bunu çağırması için bunu s çalıştırın. Alt runbook'lar ayrı işlemlerde paralel olarak yürütülür.

Alt runbook'ların kullanımı, üst runbook'un tamamlanması için toplam süre miktarını azaltır. Runbook'uz, alt runbook'un iş durumunu kontrol etmek için Get-AzAutomationJob cmdlet'ini kullanabilir.

Sonraki adımlar