Öğretici: Python 3.8 runbook'u oluşturma

Bu öğretici, Azure Otomasyonu'de Python 3.8 runbook'u oluşturma işleminde size yol gösterir. Python runbook'ları Python 2.7 ve 3.8 altında derlenebilir Runbook'un kodunu Azure portal metin düzenleyicisini kullanarak doğrudan düzenleyebilirsiniz.

  • Basit bir Python runbook'u oluşturma
  • Runbook'u test edin ve yayımlayın
  • Runbook işinin durumunu çalıştırma ve izleme
  • Runbook parametreleriyle bir Azure sanal makinesini başlatmak için runbook'u güncelleştirme

Ön koşullar

Bu öğreticiyi tamamlamak için aşağıdakiler gerekir:

  • Azure aboneliği. Henüz bir aboneliğiniz yoksa MSDN abone avantajlarınızı etkinleştirebilir veya ücretsiz bir hesaba kaydolabilirsiniz.

  • Runbook'u tutmak ve Yönetilen Kimlikleri kullanarak Azure kaynaklarında kimlik doğrulaması yapmak için bir Otomasyon hesabı . Otomasyon hesabını oluşturduğunuzda sizin için otomatik olarak bir yönetilen kimlik oluşturulur.

  • Azure sanal makinesi. Bu öğretici sırasında bu makineyi başlatacak ve durduracaksınız, bu nedenle bir üretim VM'si olmamalıdır.

Yeni runbook oluşturma

metin Merhaba Dünya çıkışını veren basit bir runbook oluşturarak başlarsınız.

  1. 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şullarda belirtilen bir yönetilen kimliği etkinleştirmiş olmanız gerekir. Hesap Ayarları'nın altında Kimlik kaynağını görüntüleyerek bunu doğrulayabilirsiniz.

  2. Runbook listesini açmak için İşlem Otomasyonu altında Runbook'lar'ı seçin.

  3. Yeni bir runbook oluşturmak için Runbook oluştur'u seçin.

  4. Runbook'a MyFirstRunbook-Python adını verin.

  5. Runbook türü olarak Python'ı seçin.

  6. Çalışma Zamanı sürümü için Python 3.8'i seçin.

  7. Runbook'u oluşturmak ve metin düzenleyicisini açmak için Oluştur'u seçin.

Runbook'a kod ekleme

Şimdi metnini Hello Worldyazdırmak için basit bir komut ekleyebilirsiniz.

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ülersiniz.

  1. Test bölmesini açmak için Test bölmesi'ni seçin.

  2. Testi başlatmak için Başlat'ı seçin. Bu seçenek tek etkin seçenek olmalıdır.

  3. Bir runbook işi oluşturulur ve durumu görüntülenir. İş durumu Kuyruğa Alındı olarak başlar ve bulutta bir runbook çalışanının kullanılabilir olmasını beklediğini belirtir. Çalışan işi talep ettiğinde başlatılıyor ve runbook gerçekten çalışmaya başladığında Çalışıyor olarak değişir.

  4. Runbook işi tamamlandığında çıktısı görüntülenir. Bu durumda, öğesini görmeniz Hello Worldgerekir.

  5. Tuvale dönmek için Test bölmesini kapatın.

Runbook'u yayımlama ve başlatma

Oluşturduğunuz runbook hala taslak modunda. Üretimde çalıştırabilmek için önce yayımlamanız gerekir. Bir runbook yayımladığınızda, taslak sürümle var olan yayımlanmış sürümün üzerine yazarsınız. Bu durumda, runbook'u yeni oluşturduğunuz için henüz yayımlanmış bir sürümünüz yoktur.

  1. Runbook'u yayımlamak için Yayımla'yı ve sorulduğunda Evet'i seçin.

  2. MyFirstRunbook_python bölmesini kapatırsanız Runbook'lar sayfasına dönersiniz. Burada YayımlanmışYazma Durumu'nu görürsünüz.

  3. Listeden MyFirstRunbook-Python adını seçtiğinizde MyFirstRunbook-Python bölmesine geri dönersiniz.

    Üstteki seçenekler runbook'u başlatmanıza, runbook'u görüntülemenize, runbook'u düzenlemenize, gelecekte bir zaman başlayacak şekilde zamanlamanıza ve diğer eylemlere olanak sağlar.

  4. Başlat'ı seçin ve ardından Runbook'u Başlat bölmesi açıldığında Tamam'ı seçin.

  5. Oluşturduğunuz runbook işi için bir İş bölmesi açılır. Bu bölmeyi kapatabilirsiniz, ancak işin ilerleme durumunu watch için açık tutalım.

  6. İş durumu, Temel Bileşenler'in altındaki Durum alanında gösterilir. Buradaki değerler runbook'u test ettiğinizde durum değerleriyle eşleşmektedir.

  7. Runbook durumu Tamamlandı olarak gösterildikten sonra Çıkış sekmesini seçin. Çıkış sekmesinde öğesini görebilirsiniz Hello World.

  8. Çıkış sekmesini kapatın.

  9. Runbook işinin akışlarını görüntülemek için Tüm Günlükler sekmesini seçin. Yalnızca çıkış akışında görmeniz Hello World gerekir. Ancak bu sekme, runbook'a yazıyorsa, bir runbook işi için Ayrıntılı ve Hata gibi diğer akışları gösterebilir.

  10. MyFirstRunbook-Python bölmesine dönmek için İşler bölmesini kapatın.

  11. Bu runbook'un İşler kaynak sayfasını açmak için İşler kaynağı'nı 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.

  12. Runbook'u başlattığınızda görüntülediğiniz İş bölmesini açmak için bu işi seçebilirsiniz. Bu bölme, zamanda geri dönmenize ve belirli bir runbook için oluşturulan herhangi bir işin ayrıntılarını görüntülemenize olanak tanır.

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. Kaynakları yönetmek için betiğin kimliğini doğrulaması gerekir.

Kimlik doğrulaması için önerilen yol , yönetilen kimlikledir. bir Azure Otomasyonu Hesabı oluşturduğunuzda, sizin için otomatik olarak bir yönetilen kimlik oluşturulur.

Bu örnekleri kullanmak için Otomasyon Hesabının Python Paketleri kaynağına aşağıdaki paketleri ekleyin. Bu bağlantılarla bu paketler için WHL dosyalarını ekleyebilirsiniz.

Bu paketleri eklediğinizde runbook'unuzla eşleşen bir çalışma zamanı sürümü seçin.

Not

Aşağıdaki kod çalışma zamanı sürüm 3.8 ile test edilmiştir.

Yönetilen kimlik

Yönetilen kimliği kullanmak için etkinleştirildiğinden emin olun:

  • Otomasyon hesabı için Yönetilen kimliğin etkinleştirilip etkinleştirilmediğini doğrulamak için Otomasyon hesabı>Hesap Ayarları>Kimliği'ne gidin ve DurumuAçık olarak ayarlayın.
  • Yönetilen kimlik, kaynağı yönetmek için atanmış bir role sahiptir. Bu sanal makine kaynağını yönetme örneğinde, Sanal Makineyi içeren kaynak grubuna "Sanal Makine Katılımcısı" rolünü ekleyin. Daha fazla bilgi için bkz. Azure portal kullanarak Azure rolleri atama

Kimlik yönetme rolü yapılandırıldığında kod eklemeye başlayabilirsiniz.

  1. MyFirstRunbook-Python bölmesinde Düzenle'yi seçerek metin düzenleyicisini açın.

  2. Azure'da kimlik doğrulaması yapmak için aşağıdaki kodu ekleyin:

#!/usr/bin/env python3
from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient

SUBSCRIPTION_ID="YOUR_SUBSCRIPTION_ID"

azure_credential = DefaultAzureCredential()

import os
import requests
# printing environment variables
endpoint = os.getenv('IDENTITY_ENDPOINT')+"?resource=https://management.azure.com/"
identityHeader = os.getenv('IDENTITY_HEADER')
payload={}
headers = {
'X-IDENTITY-HEADER' : identityHeader,
'Metadata' : True
}
response = requests.get(endpoint, headers)
print(response.text)

Python İşlem istemcisi oluşturmak ve VM'yi başlatmak için kod ekleme

Azure VM'leriyle çalışmak için Python için Azure İşlem istemcisinin bir örneğini oluşturun.

# Initialize client with the credential and subscription.
compute_client = ComputeManagementClient(
    azure_credential,
    SUBSCRIPTION_ID
)

print('\nStart VM')
async_vm_start = compute_client.virtual_machines.begin_start(
    "MyResourceGroup", "TestVM")
async_vm_start.wait()
print('\nFinished start.')

Burada MyResourceGroup , VM'yi içeren kaynak grubunun adı ve TestVM başlatmak istediğiniz VM'nin adıdır.

VM'yi başlattığı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ır. Şimdi giriş parametrelerinden bu değerleri alan kod ekleyelim.

Parametre değerlerini almak için değişkenini kullanırsınız sys.argv . Aşağıdaki kodu runbook'a diğer import deyimlerden hemen sonra ekleyin:

import sys

resource_group_name = str(sys.argv[1])
vm_name = str(sys.argv[2])

Bu kod modülü içeri aktarır sys ve kaynak grubu ile VM adlarını tutmak için iki değişken oluşturur. bağımsız değişken listesinin sys.argv[0]öğesinin betiğin adı olduğuna ve kullanıcı tarafından giriş olmadığına dikkat edin.

Artık sabit kodlanmış değerler kullanmak yerine giriş parametresi değerlerini kullanmak için runbook'un son iki satırını değiştirebilirsiniz:

async_vm_start = compute_client.virtual_machines.begin_start(
    resource_group_name, vm_name)
async_vm_start.wait()

Python runbook'unu Test bölmesinden veya yayımlanmış bir runbook olarak başlattığınızda, Parametreler'in altındaki Runbook'u Başlat sayfasında parametreler için değerleri girebilirsiniz.

İlk kutuya bir değer girmeye başladıktan sonra, gerektiği kadar parametre değeri girebilmeniz için ikinci bir değer görüntülenir ve bu şekilde devam eder.

Değerler, az önce eklediğiniz kodda sys.argv olduğu gibi dizideki betik tarafından kullanılabilir.

İlk parametrenin değeri olarak kaynak grubunuzun adını, ikinci parametrenin değeri olarak başlatacak VM'nin adını girin.

Parametre değerlerini girin

Runbook'u başlatmak için Tamam'ı seçin. Runbook, belirttiğiniz VM'yi çalıştırır ve başlatır.

Python'da hata işleme

Python runbook'larınızdan WARNING, ERROR ve DEBUG 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 try...except blokta kullanılan bu kural gösterilmektedir.

try:
    raise Exception('one', 'two')
except Exception as detail:
    print ('ERROR: Handling run-time error:', detail)

Sonraki adımlar