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

Dikkat

Bu makalede, Kullanım Süresi Sonu (EOL) durumuna yakın bir Linux dağıtımı olan CentOS'a başvuruda bulunur. Lütfen kullanımınızı göz önünde bulundurun ve buna göre planlayın. Daha fazla bilgi için bkz. CentOS Kullanım Süresi Sonu kılavuzu.

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 önkoş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 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 sorumlusu istemeniz gerekebilir.

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

  2. Uygulama kimliğini, gizli diziyi, kiracı kimliğinizi ve nesne kimliğini daha sonra kullanmak üzere 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'yi uzak makinenize yüklemeniz gerekir.

Linux kapsayıcısı üzerine Azure Stack Hub Az modülünü 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, Debian veya Centos'u ç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
    Centos docker run -it mcr.microsoft.com/azurestack/powershell:centos-7
  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 komutunu çalıştırırken Test-AzureStack.ps1nesne 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. Azure Stack Hub örneğinizden aşağıdaki değerleri içeren aşağıdaki betiği çalıştırarak ortamınıza bağlanın.

    Değer 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