Docker kullanarak PowerShell'i Azure Stack Hub

Bu makalede Docker'ı kullanarak çeşitli arabirimlerle çalışmak için gereken PowerShell sürümünü çalıştıracak bir kapsayıcı oluşturabilirsiniz. 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 şunları girin:

    docker --version
    

PowerShell kullanmak için hizmet sorumlusu ayarlama

PowerShell'i kullanarak Azure Stack Hub için Azure Active Directory (Azure AD) kiracınıza bir hizmet sorumlusu gerekir. Kullanıcı rol tabanlı erişim denetimi (RBAC) ile izinleri temsilci olarak temsilci olarak alırsınız. Bulut operatörünüzden hizmet sorumlusu isteğide bulundurabilirsiniz.

  1. Hizmet sorumlularınızı ayarlamak için Uygulamalara hizmet sorumluları oluşturarak Azure Stack Hub erişim verme yönergelerini izleyin.

  2. Uygulama kimliğini, gizli kodu, kiracı kimliğinizi ve nesne kimliğini daha sonra kullanmak üzere not edersiniz.

Docker'da PowerShell'i çalıştırma

Bu yönergelerde, PowerShell'i ve dağıtım için gerekli modülleri içeren Linux tabanlı bir kapsayıcı görüntüsü Azure Stack Hub.

  1. Docker'ı Linux kapsayıcısını kullanarak çalıştırmamız gerekir. Docker'ı çalıştırarak Linux kapsayıcılara geçiş yapma.

  2. Etki alanıyla aynı etki alanına katılmış bir makineden Docker'ı Azure Stack Hub. Azure Stack Geliştirme Seti (ASDK) kullanıyorsanız VPN'i uzak makinenize yüklemeniz gerekir.

Linux Azure Stack Hub az modülünü yükleme

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

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

    Ubuntu, Debian veya Centos'u çalıştırarak. Aşağıdaki Docker dosyalarını azurestack-powershell GitHub depoda bulabilirsiniz. Docker dosyalarında GitHub değişiklikler için depolama deposuna bakın. Her işletim sistemi etiketlenir. İki nokta üst üste bölümündeki etiketini, istenen işletim sistemi 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ırdır. Oturum açma ve çalıştırma ile kabuk bağlantınızı test edin Test-AzureStack.ps1.

    İlk olarak hizmet sorumlusu kimlik bilgilerinizi oluşturun. Gizli numaraya ve uygulama kimliğineihtiyacınız olacak. Kapsayıcınızı kontrol etmek için nesne kimliğini de çalıştırmanız gerekir. Bulut operatörünüzden bir hizmet sorumlusu isteğide bulundurabilirsiniz.

    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. Bağlan örneğinizin aşağıdaki değerleriyle aşağıdaki betiği çalıştırarak ortamınıza Azure Stack Hub.

    Değer Açıklama
    Ortamın adı. Azure Stack Hub ortamınız adı.
    Resource Manager Uç Noktası Dosyanın URL'Resource Manager. Bilmiyorsanız bulut operatörünüze ulaşın. https://management.region.domain.com gibi görünür.
    Dizin Kiracı Kimliği Kiracı dizininizin Azure Stack Hub kimliği.
    Kimlik Bilgisi Hizmet sorumlularınızı 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. Betiği kapsayıcıda çalıştırarak Test-AzureStack.ps1 ortamınızı test edin. Hizmet sorumlusu nesne kimliğini belirtin. Nesne kimliğini belirtseniz bile betik çalışır 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