Azure Stack Hub için PowerShell çalıştırmak için Docker kullanmaUse Docker to run PowerShell for Azure Stack Hub

Bu makalede, Docker 'ı kullanarak çeşitli arabirimler üzerinde çalışmak için gerekli olan PowerShell sürümünün çalıştırılacağı bir kapsayıcı oluşturabilirsiniz.In this article, you can use Docker to create a container on which to run the version of PowerShell that's required for working with the various interfaces. Hem Azurermmodules hem de en son az modülleri kullanmaya yönelik yönergeler bulabilirsiniz.You can find instructions for using both AzureRM modules and the latest Az modules. Azurerd, Windows tabanlı bir kapsayıcı gerektirir.AzureRM requires a Windows-based container. Az, Linux tabanlı bir kapsayıcı kullanır.Az uses a Linux-based container.

Docker önkoşullarıDocker prerequisites

Docker'ı yüklemeInstall Docker

  1. Docker'ı yükler.Install Docker.

  2. PowerShell veya Bash gibi bir komut satırı programında şunu girin:In a command-line program, such as PowerShell or Bash, enter:

    docker --version
    

PowerShell 'i kullanmak için bir hizmet sorumlusu ayarlamaSet up a service principal for using PowerShell

PowerShell 'i Azure Stack hub 'daki kaynaklara erişmek üzere kullanmak için, Azure Active Directory (Azure AD) kiracınızda bir hizmet sorumlusu olması gerekir.To use PowerShell to access resources in Azure Stack Hub, you need a service principal in your Azure Active Directory (Azure AD) tenant. Kullanıcı rolü tabanlı erişim denetimi (RBAC) ile izinleri devredebilirsiniz.You delegate permissions with user role-based access control (RBAC). Hizmet sorumlusunu bulut işleçinizden istemeniz gerekebilir.You may need to request the service principal from your cloud operator.

  1. Hizmet sorumlunuzu ayarlamak için, hizmet sorumluları oluşturarak uygulama Azure Stack hub kaynaklarına erişim vermekonusundaki yönergeleri izleyin.To set up your service principal, follow the instructions in Give applications access to Azure Stack Hub resources by creating service principals.

  2. Uygulama KIMLIĞI, gizli anahtar, kiracı KIMLIĞINIZ ve daha sonra kullanmak üzere nesne KIMLIĞI ' ni aklınızda yapın.Note the application ID, the secret, your tenant ID, and object ID for later use.

Docker 'da PowerShell çalıştırmaRun PowerShell in Docker

Bu yönergelerde, PowerShell 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.In these instructions, you will run a Linux-based container image that contains the PowerShell and the required modules for Azure Stack Hub.

  1. Linux kapsayıcısını kullanarak Docker çalıştırmanız gerekir.You need to run Docker by using Linux container. Docker çalıştırdığınızda, Linux kapsayıcılarına geçin.When you run Docker, switch to Linux containers.

  2. Azure Stack hub ile aynı etki alanına katılmış bir makineden Docker 'ı çalıştırın.Run Docker from a machine that's joined to the same domain as Azure Stack Hub. Azure Stack Geliştirme Seti (ASDK) kullanıyorsanız, VPN 'i uzak makinenizeyüklemeniz gerekir.If you are using the Azure Stack Development Kit (ASDK), you need to install the VPN on your remote machine.

Linux kapsayıcısına Azure Stack hub az modülünü InstallInstall Azure Stack Hub Az module on a Linux container

  1. Komut satırınızdan, bir Ubuntu kapsayıcısında PowerShell çalıştırmak için aşağıdaki Docker komutunu çalıştırın:From your command line, run the following Docker command to run PowerShell in an Ubuntu container:

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

    Ubuntu, de, veya CentOS çalıştırabilirsiniz.You can run Ubuntu, Debian, or Centos. Aşağıdaki Docker dosyalarını GitHub deposunda ( azurestack-PowerShell) bulabilirsiniz.You can find the following Docker files in the GitHub repository, azurestack-powershell. Docker dosyalarında yapılan en son değişiklikler için GitHub deposuna bakın.Refer to the GitHub repository for the latest changes to the Docker files. Her işletim sistemi etiketlendi.Each OS is tagged. Etiketi, iki nokta üst üste işaretinden sonraki bölümü, istenen işletim sisteminin etiketiyle değiştirin.Replace the tag, the section after the colon, with the tag for the desired OS.

    LinuxLinux Docker görüntüsüDocker image
    UbuntuUbuntu docker run -it mcr.microsoft.com/azurestack/powershell:ubuntu-18.04
    DebianDebian docker run -it mcr.microsoft.com/azurestack/powershell:debian-9
    CentosCentos docker run -it mcr.microsoft.com/azurestack/powershell:centos-7
  2. Kabuk cmdlet 'larınız için hazırlayın.The shell is ready for your cmdlets. Oturum açıp çalıştırarak kabuk bağlantınızı test edin Test-AzureStack.ps1 .Test your shell connectivity by signing in and then running Test-AzureStack.ps1.

    İlk olarak, hizmet sorumlusu kimlik bilgilerinizi oluşturun.First, create your service principal credentials. Gizli anahtar ve uygulama kimliği gereklidir.You will need the secret and application ID. Ayrıca, kapsayıcısını denetlemek için çalıştırırken nesne kimliğine ihtiyacınız olacaktır Test-AzureStack.ps1 .You will also need the object ID when running the Test-AzureStack.ps1 to check your container. Bulut işleçinizden bir hizmet sorumlusu istemeniz gerekebilir.You may need to request a service principal from your cloud operator.

    Bir hizmet ilkesi nesnesi oluşturmak için aşağıdaki cmdlet 'leri yazın:Type the following cmdlets to create a service principle object:

    $passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force
    $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
    
  3. Aşağıdaki komut dosyasını Azure Stack hub örneğiniz aşağıdaki değerleriyle çalıştırarak ortamınıza bağlanın.Connect to your environment by running the following script with the following values from your Azure Stack Hub instance.

    DeğerValue AçıklamaDescription
    Ortamın adı.The name of the environment. Azure Stack hub ortamınızın adı.The name of your Azure Stack Hub environment.
    Kaynak Yöneticisi uç noktasıResource Manager Endpoint Kaynak Yöneticisi URL 'SI.The URL for the Resource Manager. Bilginiz yoksa bulut operatörünüzle iletişim kurun.Contact your cloud operator if you don't know it. https://management.region.domain.com gibi görünür.It will look something like https://management.region.domain.com.
    Dizin kiracı KIMLIĞIDirectory Tenant ID Azure Stack hub kiracı dizininizin KIMLIĞI.The ID of your Azure Stack Hub tenant directory.
    Kimlik BilgisiCredential Hizmet sorumlunuzu içeren bir nesne.An object containing your service principal. Bu durumda $pscredential .In this case $pscredential.
    ./Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
    

    PowerShell, hesap nesneniz döndürür.PowerShell returns your account object.

  4. Kapsayıcıda betiği çalıştırarak ortamınızı test edin Test-AzureStack.ps1 .Test your environment by running the Test-AzureStack.ps1 script in the container. Hizmet sorumlusu nesne kimliğini belirtin.Specify the service principal object ID. Nesne KIMLIĞINI belirtmezseniz, komut dosyası ç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.If you do not indicate the object ID, the script will still run but it will just test tenant (user) modules and fail on modules that require administrator privileges.

    ./Test-AzureStack.ps1 <Object ID>
    

Sonraki adımlarNext steps