Docker를 사용하여 Azure Stack Hub용 PowerShell 실행
이 문서에서는 Docker를 사용하여 다양한 인터페이스를 사용하는 데 필요한 PowerShell 버전을 실행할 컨테이너를 만들 수 있습니다. AzureRM 모듈과 최신 Az 모듈을 모두 사용하는 방법에 대한 지침을 찾을 수 있습니다. AzureRM에는 Windows 기반 컨테이너가 필요합니다. Az는 Linux 기반 컨테이너를 사용합니다.
Docker 전제 조건
Docker 설치
Docker를 설치 합니다.
PowerShell 또는 Bash와 같은 명령줄 프로그램에서 다음을 입력합니다.
docker --version
PowerShell을 사용하기 위한 서비스 주체 설정
PowerShell을 사용하여 Azure Stack Hub의 리소스에 액세스하려면 Microsoft Entra 테넌트에 서비스 주체가 필요합니다. RBAC(사용자 역할 기반 액세스 제어)를 사용하여 권한을 위임합니다. 클라우드 운영자에게 서비스 주체를 요청해야 할 수도 있습니다.
서비스 주체를 설정하려면 서비스 주체를 만들어 애플리케이션에 Azure Stack Hub 리소스에 대한 액세스 권한 부여의 지침을 따릅니다.
나중에 사용할 수 있는 애플리케이션 ID, 비밀, 테넌트 ID 및 개체 ID를 기록해 둡니다.
Docker에서 PowerShell 실행
이 지침에서는 PowerShell 및 Azure Stack Hub에 필요한 모듈을 포함하는 Linux 기반 컨테이너 이미지를 실행합니다.
Linux 컨테이너를 사용하여 Docker를 실행해야 합니다. Docker를 실행할 때 Linux 컨테이너로 전환합니다.
Azure Stack Hub와 동일한 도메인에 가입된 컴퓨터에서 Docker를 실행합니다. ASDK(Azure Stack Development Kit)를 사용하는 경우 원격 머신에 VPN을 설치합니다.
Linux 컨테이너에 Azure Stack Hub Az 모듈 설치
명령줄에서 다음 Docker 명령을 실행하여 Ubuntu 컨테이너에서 PowerShell을 실행합니다.
docker run -it mcr.microsoft.com/azurestack/powershell
Ubuntu 또는 Debian을 실행할 수 있습니다. GitHub 리포지토리, azurestack-powershell에서 다음 Docker 파일을 찾을 수 있습니다. Docker 파일에 대한 최신 변경 내용은 GitHub 리포지토리를 참조하세요. 각 OS에는 태그가 지정됩니다. 콜론 뒤의 섹션인 태그를 원하는 OS에 대한 태그로 바꿉다.
Linux Docker 이미지 Ubuntu docker run -it mcr.microsoft.com/azurestack/powershell:ubuntu-18.04
Debian docker run -it mcr.microsoft.com/azurestack/powershell:debian-9
cmdlet에 대한 셸이 준비되었습니다. 로그인한 다음 실행
Test-AzureStack.ps1
하여 셸 연결을 테스트합니다.먼저 서비스 주체 자격 증명을 만듭니다. 비밀 및 애플리케이션 ID가 필요합니다. 컨테이너를 확인하기 위해 실행할
Test-AzureStack.ps1
때 개체 ID도 필요합니다. 클라우드 운영자에게 서비스 주체를 요청해야 할 수 있습니다.다음 cmdlet을 입력하여 서비스 주체 개체를 만듭니다.
$passwd = ConvertTo-SecureString <Secret> -AsPlainText -Force $pscredential = New-Object System.Management.Automation.PSCredential('<ApplicationID>', $passwd)
Azure Stack Hub 인스턴스에서 다음 값을 사용하여 다음 스크립트를 실행하여 환경에 연결합니다.
값 설명 환경의 이름입니다. Azure Stack Hub 환경의 이름입니다. Resource Manager 끝점 Resource Manager의 URL입니다. 모르는 경우 클라우드 운영자에게 문의하세요. 이는 https://management.region.domain.com
과 비슷합니다.디렉터리 테넌트 ID Azure Stack Hub 테넌트 디렉터리의 ID입니다. 자격 증명 서비스 주체를 포함하는 개체입니다. 이 경우 $pscredential
입니다../Login-Environment.ps1 -Name <String> -ResourceManagerEndpoint <resource manager endpoint> -DirectoryTenantId <String> -Credential $pscredential
PowerShell은 계정 개체를 반환합니다.
컨테이너에서 스크립트를
Test-AzureStack.ps1
실행하여 환경을 테스트합니다. 서비스 주체 개체 ID를 지정합니다. 개체 ID를 나타내지 않으면 스크립트가 계속 실행되지만 테넌트(사용자) 모듈만 테스트하고 관리자 권한이 필요한 모듈에서 실패합니다../Test-AzureStack.ps1 <Object ID>
다음 단계
- Azure Stack Hub의 Azure Stack Hub PowerShell 개요를 읽어보십시오.
- Azure Stack Hub의 PowerShell에 대한 API 프로필에 대해 읽어봅니다.
- Azure Stack Hub PowerShell을 설치합니다.
- 클라우드 일관성을 위해 Azure Resource Manager 템플릿을 만드는 방법에 대해 알아봅니다.