powershell 로 가상 컴퓨터 만 들 기
5457 단어 powershell가상 머 신 만 들 기
가상 호스트 가상 호스트 는 다른 기본 구성 요소 와 연결 되 어야 사용 가능 한 서 비 스 를 제공 할 수 있 습 니 다.이런 구성 요 소 는 네트워크 카드,Public IP 주소,가상 네트워크,네트워크 보안 팀,저장 등 을 포함 합 니 다.다음 그림 은 새 가상 컴퓨터 에 필요 한 다른 구성 요 소 를 포함 하고 있 습 니 다.
즉,우리 가 허 기 를 만 드 는 동시에 이 구성 요소 들 을 하나하나 만들어 야 한 다 는 것 이다.
정의 변수
앞으로 이 스 크 립 트 를 다시 사용 할 수 있 기 를 바 랍 니 다.따라서 사용 하 는 변 수 를 모두 함께 놓 으 면 스 크 립 트 를 수정 하거나 사용 할 수 있 는 매개 변 수 를 초기 화 할 수 있 습 니 다.
$rgName = "vmpool"
$rgLocation = "East Asia"
$subnetConfigName = $rgName + "subnet"
$vnetName = $rgName + "vnet"
$vmName = "vmxman"
$pipName = $vmName + "pip"
$nsgRule22Name = "nsgRule22"
$nsgName = $rgName + "nsg"
$interfaceName = $vmName + "nic"
$storageName = $rgName + "storage"
$storageType = "Standard_GRS"
$oSDiskName = $vmName + "OSDisk"
$vmSize = "Standard_D1"
$vmVersion = "16.04-LTS"
$userName = "nick"
$userPassword = "123456"
놀 라 지 않 았 으 면 좋 겠 어 요.맞다!바로 이렇게 많은 변수 가 필요 하 다 는 것 이다.여 기 는 먼저 설명 하지 않 고 뒤에서 하 나 를 써 서 말 하 는 것 이다.로그 인 허위 증 거 를 만 듭 니 다.
이 스 크 립 트 를 통 해 만 든 가상 컴퓨터 는 기본적으로 사용 자 를 만 들 것 입 니 다.사용자 의 이름과 로그 인 비밀 번 호 를 지정 해 야 합 니 다.(우리 가 만 든 사용 자 는 공개 키 인증 을 통 해 로그 인 합 니 다.이 비밀 번 호 는 실제로 사용 되 지 않 습 니 다)사용자 이름과 비밀 번 호 를 통 해 증빙서류 대상 만 들 기:
$securePassword = ConvertTo-SecureString $userPassword -AsPlainText -Force
$userCred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)
리 소스 그룹 만 들 기새 리 소스 그룹 을 만 듭 니 다.이 가상 컴퓨터 와 관련 된 모든 구성 요 소 는 같은 리 소스 그룹 에 속 합 니 다.
New-AzureRmResourceGroup -Name $rgName -Location $rgLocation
인자 Location 에서 리 소스 Group 의 위 치 를 동아시아 로 지정 합 니 다(접근 속도 가 빠 릅 니 다).가상 네트워크 만 들 기
다음은 가상 네트워크 를 만 듭 니 다.먼저 하위 네트워크 설정 을 만 듭 니 다:
$subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name $subnetConfigName -AddressPrefix 192.168.1.0/24
그리고 하위 네트워크 를 가 진 가상 네트워크 를 만 듭 니 다.
$vnet = New-AzureRmVirtualNetwork -ResourceGroupName $rgName -Location $rgLocation `
-Name $vnetName -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig
마지막 으로 호스트 에 외부 네트워크 로 접근 할 수 있 는 Public IP 를 만 듭 니 다:
$pip = New-AzureRmPublicIpAddress -ResourceGroupName $rgName -Location $rgLocation `
-AllocationMethod Static -IdleTimeoutInMinutes 4 `
-Name $pipName
네트워크 보안 그룹 만 들 기22 포트 에 접근 할 수 있 는 규칙 을 설정 해 야 합 니 다:
$nsgRule22 = New-AzureRmNetworkSecurityRuleConfig -Name $nsgRule22Name -Protocol Tcp `
-Direction Inbound -Priority 200 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 22 -Access Allow
그리고 네트워크 보안 그룹 만 들 기:
$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $rgName -Location $rgLocation `
-Name $nsgName -SecurityRules $nsgRule22
네트워크 인터페이스 만 들 기호스트 에 네트워크 카드 가 한 장 부족 하기 때문에 호스트 에 가상 네트워크 카드 를 만 듭 니 다.
$nic = New-AzureRmNetworkInterface -Name $interfaceName -ResourceGroupName $rgName -Location $rgLocation `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
저장 소 계 정 만 들 기가상 디스크 파일 은 azure 의 저장 소 에 blob 형식 으로 저장 되 어 있 기 때문에 디스크 파일 을 저장 하기 위해 StorageAccount 를 만들어 야 합 니 다.
$storageAccount = New-AzureRmStorageAccount -ResourceGroupName $rgName -Name $storageName -Type $storageType -Location $rgLocation
디스크 파일 의 저장 위치 와 이름 을 정의 합 니 다:
$oSDiskUri = $storageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $oSDiskName + ".vhd"
가상 컴퓨터 만 들 기다음 에 가상 컴퓨터 와 관련 된 설정 을 만 듭 니 다:
$vmConfig = New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize | `
Set-AzureRmVMOperatingSystem -Linux -ComputerName $vmName -Credential $userCred -DisablePasswordAuthentication | `
Set-AzureRmVMSourceImage -PublisherName Canonical -Offer UbuntuServer -Skus $vmVersion -Version latest | `
Add-AzureRmVMNetworkInterface -Id $nic.Id | `
Set-AzureRmVMOSDisk -VhdUri $oSDiskUri -CreateOption FromImage
Google 이 만 든 가상 운영 체 제 는 Ubuntu Server 16.04-LTS 로 사용자 이름 비밀 번 호 를 사용 하 는 방식 으로 로그 인 할 수 없습니다.사용자 가 공개 키 로 로그 인 할 수 있 도록 하려 면 사용자 의 공개 키 를 제공 해 야 합 니 다.
$sshPublicKey = "nick's ssh public key"
다음 명령 은 사용자 의 authorized 에 공개 키 를 기록 합 니 다.keys 파일 중:
Add-AzureRmVMSshPublicKey -VM $vmconfig -KeyData $sshPublicKey -Path "/home/$userName/.ssh/authorized_keys"
다음 명령 은 azure 에 실제 가상 컴퓨터 를 만 듭 니 다:
New-AzureRmVM -ResourceGroupName $rgName -Location $rgLocation -VM $vmConfig
질문azure 에서 작업 을 수행 하려 면 사용자 가 먼저 로그 인 을 해 야 합 니 다.PowerShell 스 크 립 트 에서 어떻게 해 야 합 니까?
필 자 는 라 는 글 에서 상세 한 소 개 를 했 는데 관심 이 있 는 친 구 는 참고 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Powershell 7을 사용하여 Samba 서버로 파일을 전송하는 방법.MSSQL 덤프를 복사하여 콜드 스토리지 솔루션으로 원격 Linux Samba 서버에 저장하도록 설계한 twoScripts를 공유하고 싶습니다. 모든 서버가 Windows 서버였으며 내가 이것을 만들기로 결정한 이유...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.