Aracılığıyla paylaş


Azure Stack Hub için PowerShell'i çalıştırmak için Docker kullanma

Bu makalede, Çeşitli arabirimlerle çalışmak için gereken PowerShell sürümünün çalıştırıldığı bir kapsayıcı oluşturmak için Docker'ı kullanabilirsiniz. Hem AzureRM modüllerini hem de en son Az modüllerini kullanma yönergelerini bulabilirsiniz. AzureRM, Windows tabanlı bir kapsayıcı gerektirir. Az, Linux tabanlı bir kapsayıcı kullanır.

Docker ön koşulları

Docker'ı yükleme

  1. Docker'ı yükleyin.

  2. PowerShell veya Bash gibi bir komut satırı programına şunu girin:

    docker --version
    

PowerShell kullanmak için hizmet sorumlusu ayarlama

PowerShell'i kullanarak Azure Stack Hub'daki kaynaklara erişmek için Microsoft Entra kiracınızda bir hizmet sorumlusuna ihtiyacınız vardır. Kullanıcı rol tabanlı erişim denetimi (RBAC) ile izinleri temsilci olarak verirsiniz. Bulut operatörünüzden hizmet sorumlusunu istemeniz gerekebilir.

  1. Hizmet sorumlunuzu ayarlamak için Uygulamalara hizmet sorumluları oluşturarak Azure Stack Hub kaynaklarına erişim verme başlığındaki yönergeleri izleyin.

  2. Daha sonra kullanmak üzere uygulama kimliğini, gizli diziyi, kiracı kimliğinizi ve nesne kimliğini not edin.

Docker'da PowerShell çalıştırma

Bu yönergelerde, PowerShell'i ve Azure Stack Hub için gerekli modülleri içeren Linux tabanlı bir kapsayıcı görüntüsü çalıştıracaksınız.

  1. Linux kapsayıcısını kullanarak Docker'ı çalıştırmanız gerekir. Docker'ı çalıştırdığınızda Linux kapsayıcılarına geçin.

  2. Docker'ı Azure Stack Hub ile aynı etki alanına katılmış bir makineden çalıştırın. Azure Stack Geliştirme Seti'ni (ASDK) kullanıyorsanız vpn'i uzak makinenize yüklemeniz gerekir.

Azure Stack Hub Az modülünü Linux kapsayıcıya yükleme

  1. Komut satırınızdan aşağıdaki Docker komutunu çalıştırarak PowerShell'i bir Ubuntu kapsayıcısında çalıştırın:

    docker run -it mcr.microsoft.com/azurestack/powershell
    

    Ubuntu veya Debian çalıştırabilirsiniz. Aşağıdaki Docker dosyalarını GitHub deposunda bulabilirsiniz: azurestack-powershell. Docker dosyalarındaki en son değişiklikler için GitHub deposuna bakın. Her işletim sistemi etiketli. İki nokta üst üste işaretinden sonraki bölüm olan etiketini, istenen işletim sisteminin etiketiyle değiştirin.

    Linux Docker görüntüsü
    Ubuntu docker run -it mcr.microsoft.com/azurestack/powershell:ubuntu-18.04
    Debian docker run -it mcr.microsoft.com/azurestack/powershell:debian-9
  2. Kabuk cmdlet'leriniz için hazır. Oturum açıp komutunu çalıştırarak Test-AzureStack.ps1kabuk bağlantınızı test edin.

    İlk olarak hizmet sorumlusu kimlik bilgilerinizi oluşturun. Gizli diziye ve uygulama kimliğine ihtiyacınız olacaktır. Kapsayıcınızı denetlemek için öğesini çalıştırırken Test-AzureStack.ps1 nesne kimliğine de ihtiyacınız olacaktır. Bulut operatörünüzden bir hizmet sorumlusu istemeniz gerekebilir.

    Hizmet ilkesi nesnesi oluşturmak için aşağıdaki cmdlet'leri yazın:

    $passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force
    $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
    
  3. Aşağıdaki betiği Azure Stack Hub örneğinizden aşağıdaki değerlerle çalıştırarak ortamınıza Bağlan.

    Value Açıklama
    Ortamın adı. Azure Stack Hub ortamınızın adı.
    Resource Manager Uç Noktası Resource Manager URL'si. Bilmiyorsanız bulut operatörünüze başvurun. https://management.region.domain.com gibi görünür.
    Dizin Kiracı Kimliği Azure Stack Hub kiracı dizininizin kimliği.
    Referans Hizmet sorumlunuzu içeren bir nesne. Bu durumda $pscredential.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    PowerShell, hesap nesnenizi döndürür.

  4. Kapsayıcıda betiği çalıştırarak Test-AzureStack.ps1 ortamınızı test edin. Hizmet sorumlusu nesne kimliğini belirtin. Nesne kimliğini belirtmezseniz, betik çalışmaya devam eder, ancak yalnızca kiracı (kullanıcı) modüllerini test eder ve yönetici ayrıcalıkları gerektiren modüllerde başarısız olur.

    ./Test-AzureStack.ps1 <Object ID>
    

Sonraki adımlar