Öğretici: Python 3 runbook 'u oluşturma (Önizleme)
Bu öğreticide, Azure Otomasyonu 'nda Python 3 runbook (Önizleme) oluşturma işlemi adım adım açıklanmaktadır. Python runbook 'ları Python 2 ve 3 altında derlenir. Azure portal metin düzenleyicisini kullanarak runbook 'un kodunu doğrudan düzenleyebilirsiniz.
- Basit bir Python runbook 'u oluşturma
- Runbook 'u test etme ve yayımlama
- Runbook işinin durumunu çalıştırma ve izleme
- Runbook parametreleri ile bir Azure sanal makinesini başlatmak için Runbook 'u güncelleştirme
Önkoşullar
Bu öğreticiyi tamamlamak için aşağıdakiler gerekir:
Azure aboneliği. Henüz bir hesabınız yoksa MSDN abone avantajlarınızı etkinleştirebilir veya ücretsiz bir hesapiçin kaydolabilirsiniz.
Runbook’u tutacak ve Azure kaynaklarında kimlik doğrulamasını yapacak bir Automation hesabı. Bu hesabın sanal makineyi başlatma ve durdurma izni olmalıdır. Bu öğretici için Farklı Çalıştır hesabı gereklidir.
Azure sanal makinesi. Bu öğreticide, bu makineyi başlatıp durdurarak bir üretim sanal makinesi olmaması gerekir.
Yeni runbook oluştur
Merhaba Dünya metin çıkışı veren basit bir runbook oluşturarak başlayın.
Azure portalında, Otomasyon hesabınızı açın.
Automation hesabı sayfası size bu hesaptaki kaynakların hızlı bir görünümünü sağlar. Birkaç varlığınız zaten olmalıdır. Bu varlıkların çoğu, yeni bir Otomasyon hesabına otomatik olarak dahil edilen modüllerdir. Ayrıca, önkoşullardabahsedilen farklı çalıştır hesabı kimlik bilgisi varlığına de sahip olmanız gerekir.
Runbook 'ların listesini açmak için Işlem Otomasyonu altında runbook 'lar ' ı seçin.
Yeni bir runbook oluşturmak için runbook Ekle ' yi seçin.
Runbook 'A Myfirstrunbook-Python adını verin.
Runbook türü için Python 3 ' ü seçin.
Runbook 'u oluşturmak için Oluştur ' u seçin ve metin düzenleyicisini açın.
Runbook 'a kod ekleme
Artık metni yazdırmak için basit bir komut eklersiniz Hello World .
print("Hello World!")
Runbook 'u kaydetmek için Kaydet ' i seçin.
Runbook'u test etme
Runbook’u üretimde kullanılabilir hale getirmek üzere yayımlamadan önce düzgün çalıştığından emin olmak için test etmeniz gerekir. Bir runbook 'u test ettiğinizde, taslak sürümünü çalıştırır ve çıktısını etkileşimli olarak görüntüleyebilirsiniz.
Test bölmesini açmak için Test bölmesi ' ni seçin.
Testi başlatmak için Başlat ' ı seçin. Etkinleştirilen tek seçenek bu olmalıdır.
Bir runbook işi oluşturulur ve durumu görüntülenir. İş durumu, bulutta bir runbook worker 'ın kullanılabilir hale gelmesini beklediğini belirten sıraya alındı olarak başlar. Bir çalışan işi talep ettiği zaman başlayacak şekilde değişir ve ardından runbook aslında çalışmaya başladığında çalışır .
Runbook işi tamamlandığında çıktısı görüntülenir. Bu durumda, görmeniz gerekir
Hello World.Tuvale geri dönmek için Test bölmesini kapatın.
Runbook 'u yayımlama ve başlatma
Oluşturduğunuz runbook hala taslak modunda. Bunu üretimde çalıştırmadan önce yayımlamanız gerekir. Bir runbook yayımladığınızda, var olan yayımlanmış sürümün üzerine taslak sürümünü yazın. Bu durumda, henüz runbook 'u oluşturduğunuz için yayınlanmış bir sürümdür.
Runbook 'u yayımlamak için Yayımla ' yı seçin ve istendiğinde Evet ' e tıklayın.
Runbook 'u runbook 'ları sayfasında görüntülemek için sola kaydırırsanız yayımlanmış bir yazma durumu görmeniz gerekir.
Myfirstrunbook-Python3 bölmesini görüntülemek için sağ tarafa geri kaydırın.
Üstteki seçenekler, runbook 'u başlatabilir, runbook 'u görüntüleyebilir veya gelecekte bir süre sonra başlayacak şekilde zamanlayabilirsiniz.
Başlat ' ı seçin ve runbook 'u Başlat bölmesi açıldığında Tamam ' ı seçin.
Oluşturduğunuz runbook işi için bir iş bölmesi açılır. Bu bölmeyi kapatabilir, ancak işin ilerlemesini izleyebilmeniz için açık bırakalım.
İş durumu Iş özetinde gösterilir ve Runbook 'u test ettiğinizde gördüğünüz durumları eşleştirir.
Runbook durumu tamamlandı olarak gösterildikten sonra Çıkış' ı seçin. Burada görebileceğiniz Çıkış bölmesi açılır
Hello World.Çıkış bölmesini kapatın.
Runbook işinin akışlar bölmesini açmak Için Tüm Günlükler ' i seçin. Yalnızca
Hello WorldÇıkış akışında görmeniz gerekir. Ancak bu bölme, runbook 'a yazıyorsa ayrıntılı ve hata gibi bir runbook işi için diğer akışları gösterebilir.Myfirstrunbook-Python3 bölmesine dönmek için akışlar bölmesini ve iş bölmesini kapatın.
Bu runbook 'un işler sayfasını açmak için işler ' i seçin. Bu sayfada bu runbook tarafından oluşturulan tüm işler listelenir. İşi yalnızca bir kez çalıştırdığınız için sadece bir işin listelendiğini görmeniz gerekir.
Bu işi, runbook 'u başlattığınızda görüntülediğiniz aynı iş bölmesini açmak için seçebilirsiniz. Bu bölme, zaman içinde geri dönmenizi ve belirli bir runbook için oluşturulan herhangi bir işin ayrıntılarını görüntülemenizi sağlar.
Azure kaynaklarını yönetmek için kimlik doğrulaması ekleme
Runbook uygulamanızı test ettiniz ve yayımladınız, ancak şu ana kadar faydalı bir şey yapmadı. Bu runbook’un Azure kaynaklarını yönetmesini istiyorsunuz. Bunu yapmak için betiğin Otomasyon hesabınızdan farklı çalıştır hesabı kimlik bilgilerini kullanarak kimlik doğrulaması yapması gerekir.
Not
Farklı Çalıştır sertifikası olması için, Otomasyon hesabı farklı çalıştır hesabıyla oluşturulmuş olmalıdır. Otomasyon hesabınız farklı çalıştır hesabıyla oluşturulmadıysa, Python Için Azure Yönetim kitaplıklarıyla kimlik doğrulama veya Farklı Çalıştır hesabı oluşturmabölümünde açıklandığı gibi kimlik doğrulaması yapabilirsiniz.
Myfirstrunbook-Python3 bölmesinde Düzenle seçeneğini belirleyerek metinsel düzenleyiciyi açın.
Azure 'da kimlik doğrulaması yapmak için aşağıdaki kodu ekleyin:
import os from azure.mgmt.compute import ComputeManagementClient import azure.mgmt.resource import automationassets def get_automation_runas_credential(runas_connection): from OpenSSL import crypto import binascii from msrestazure import azure_active_directory import adal # Get the Azure Automation RunAs service principal certificate cert = automationassets.get_automation_certificate("AzureRunAsCertificate") pks12_cert = crypto.load_pkcs12(cert) pem_pkey = crypto.dump_privatekey(crypto.FILETYPE_PEM,pks12_cert.get_privatekey()) # Get run as connection information for the Azure Automation service principal application_id = runas_connection["ApplicationId"] thumbprint = runas_connection["CertificateThumbprint"] tenant_id = runas_connection["TenantId"] # Authenticate with service principal certificate resource ="https://management.core.windows.net/" authority_url = ("https://login.microsoftonline.com/"+tenant_id) context = adal.AuthenticationContext(authority_url) return azure_active_directory.AdalAuthentication( lambda: context.acquire_token_with_client_certificate( resource, application_id, pem_pkey, thumbprint) ) # Authenticate to Azure using the Azure Automation RunAs service principal runas_connection = automationassets.get_automation_connection("AzureRunAsConnection") azure_credential = get_automation_runas_credential(runas_connection)
Python Işlem istemcisi oluşturmak ve VM 'yi başlatmak için kod ekleme
Azure VM 'leriyle çalışmak için Python Için Azure işlem istemcisininbir örneğini oluşturun.
VM 'yi başlatmak için işlem istemcisini kullanın. Aşağıdaki kodu runbook 'a ekleyin:
# Initialize the compute management client with the Run As credential and specify the subscription to work against.
compute_client = ComputeManagementClient(
azure_credential,
str(runas_connection["SubscriptionId"])
)
print('\nStart VM')
async_vm_start = compute_client.virtual_machines.start(
"MyResourceGroup", "TestVM")
async_vm_start.wait()
, MyResourceGroup Sanal makineyi içeren kaynak grubunun adıdır ve TestVM başlatmak istediğiniz VM 'nin adıdır.
VM 'nin başlatıldığını görmek için Runbook 'u yeniden test edin ve çalıştırın.
Giriş parametrelerini kullanma
Runbook Şu anda kaynak grubunun ve VM 'nin adları için sabit kodlanmış değerler kullanıyor. Şimdi Giriş parametrelerinden bu değerleri alan kodu ekleyelim.
sys.argvParametre değerlerini almak için değişkenini kullanırsınız. Aşağıdaki kodu diğer deyimlerden hemen sonra runbook 'a ekleyin import :
import sys
resource_group_name = str(sys.argv[1])
vm_name = str(sys.argv[2])
Bu, modülünü içeri aktarır sys ve kaynak grubunu ve VM adlarını tutmak için iki değişken oluşturur. Bağımsız değişken listesinin öğesi, sys.argv[0] , betiğin adı olduğunu ve Kullanıcı tarafından giriş olmadığına dikkat edin.
Artık runbook 'un son iki satırını, sabit kodlanmış değerler kullanmak yerine giriş parametresi değerlerini kullanacak şekilde değiştirebilirsiniz:
async_vm_start = compute_client.virtual_machines.start(
resource_group_name, vm_name)
async_vm_start.wait()
Test bölmesinden ya da yayımlanmış bir runbook olarak bir Python runbook 'u başlattığınızda, Parametreler altındaki runbook 'u Başlat sayfasında parametrelerin değerlerini girebilirsiniz.
İlk kutuya bir değer girmeyi başlattıktan sonra, ikinci olarak bir belirir ve bu şekilde gerektiği kadar parametre değeri girebilirsiniz.
Değerler dizideki komut dosyasında, sys.argv yeni eklediğiniz kodda olduğu gibi kullanılabilir.
İlk parametrenin değeri olarak kaynak grubunuzun adını ve ikinci parametrenin değeri olarak başlatılacak VM 'nin adını girin.

Runbook 'u başlatmak için Tamam ' ı seçin. Runbook çalışır ve belirttiğiniz VM 'yi başlatır.
<a name="error-handling-in-python">Python 'da hata işleme
Ayrıca, Python runbook 'larınızdan uyarı, hata ve hata ayıklama akışları gibi çeşitli akışlar almak için aşağıdaki kuralları da kullanabilirsiniz.
print("Hello World output")
print("ERROR: - Hello world error")
print("WARNING: - Hello world warning")
print("DEBUG: - Hello world debug")
print("VERBOSE: - Hello world verbose")
Aşağıdaki örnekte, bir bloğunda kullanılan bu kural gösterilmektedir try...except .
try:
raise Exception('one', 'two')
except Exception as detail:
print ('ERROR: Handling run-time error:', detail)
Sonraki adımlar
Runbook türleri, avantajları ve sınırlamaları hakkında daha fazla bilgi edinmek için bkz. Azure Otomasyonu runbook türleri.
Python ile Azure için geliştirme hakkında bilgi edinmek için bkz. Python geliştiricileri Için Azure.
Örnek Python 3 runbook 'larını görüntülemek için bkz. Azure Otomasyonu GitHub deposu.