Azure 포털에서 Azure 가상 시스템 이름 변경
Azure 포털에서 Azure 가상 시스템의 이름을 변경할 수 있습니까?포털을 통해 변경할 수는 없습니다. 가상 시스템 이름을 변경할 수 있는 PowerShell cmdlet이 있습니까?
참고: VM 내부의 VM 이름이 아니라 Azure Portal에 표시되는 이름을 말합니다.
가상 시스템의 리소스 이름은 변경할 수 없습니다.따라서 가상 시스템을 다시 배포해야 합니다.
이렇게 하는 가장 좋은 방법은 현재 디스크를 삭제하고 디스크를 유지 관리한 다음 해당 디스크를 가리키는 올바른 이름으로 새 디스크를 만드는 것입니다.
새 VM을 생성하고 매개 변수를 일부 변경한 이 파괴적이지 않은 zero powershell 스크립트에 대한 공로를 Oliver Miosec에 돌립니다.당신은 여기에서 그의 게시물을 찾을 수 있습니다.컴퓨터와 연결된 잘못된 이름의 디스크와 NIC도 수정할 수 있기 때문에 더욱 훌륭합니다.
#Deletes and recreates a VM
param (
[Parameter(Mandatory=$true)]
[string]$vmOldName,
[Parameter(Mandatory=$true)]
[string]$vmNewName,
[Parameter(Mandatory=$true)]
[string]$rgName,
[string]$newLocation #Optional, moves the VM to a new Geographic Location
)
$ErrorActionPreference = "Stop"
Write-Host "Get and Shutdown old VM, Create new config"
$SourceVmObject = get-azvm -Name $vmOldName -ResourceGroupName $rgName
if ([string]::IsNullOrEmpty($newLocation)) {
$newLocation = $SourceVmObject.Location
Write-Host "No new location specified, using the current VM's existing location: $newLocation"
}
$SourceVmPowerStatus = (get-azvm -Name $SourceVmObject.Name -ResourceGroupName $SourceVmObject.ResourceGroupName -Status).Statuses | where-object code -like "PowerState*"
if ($SourceVmPowerStatus -ne "VM deallocated") {
stop-azVm -Name $SourceVmObject.Name -ResourceGroupName $SourceVmObject.ResourceGroupName -Force
Start-Sleep -Seconds 30 #Wait to ensure VM is shutdown.
}
$NewVmObject = New-AzVMConfig -VMName $vmNewName -VMSize $SourceVmObject.HardwareProfile.VmSize
Write-Host "Create new Network Objects"
$subnetID = (Get-AzNetworkInterface -ResourceId $SourceVmObject.NetworkProfile.NetworkInterfaces[0].id).IpConfigurations.Subnet.id
$nic = New-AzNetworkInterface -Name "$($vmNewName.ToLower())-0-nic" -ResourceGroupName $SourceVmObject.ResourceGroupName -Location $SourceVmObject.Location -SubnetId $SubnetId
Add-AzVMNetworkInterface -VM $NewVmObject -Id $nic.Id
Write-Host "Move OS Disk"
$SourceOsDiskSku = (get-azdisk -ResourceGroupName $SourceVmObject.ResourceGroupName -DiskName $SourceVmObject.StorageProfile.OsDisk.name).Sku.Name
$SourceOsDiskSnapConfig = New-AzSnapshotConfig -SourceUri $SourceVmObject.StorageProfile.OsDisk.ManagedDisk.Id -Location $SourceVmObject.Location -CreateOption copy
$SourceOsDiskSnap = New-AzSnapshot -Snapshot $SourceOsDiskSnapConfig -SnapshotName "$($SourceVmObject.Name)-os-snap" -ResourceGroupName $SourceVmObject.ResourceGroupName
$TargetOsDiskConfig = New-AzDiskConfig -AccountType $SourceOsDiskSku -Location $SourceVmObject.Location -CreateOption Copy -SourceResourceId $SourceOsDiskSnap.Id
$TargetOsDisk = New-AzDisk -Disk $TargetOsDiskConfig -ResourceGroupName $SourceVmObject.ResourceGroupName -DiskName "$($vmNewName.ToLower())-os-vhd"
Set-AzVMOSDisk -VM $NewVmObject -ManagedDiskId $TargetOsDisk.Id -CreateOption Attach -Windows
Write-Host "Create new Data Disks"
Foreach ($SourceDataDisk in $SourceVmObject.StorageProfile.DataDisks) {
$SourceDataDiskSku = (get-azdisk -ResourceGroupName $SourceVmObject.ResourceGroupName -DiskName $SourceDataDisk.name).Sku.Name
$SourceDataDiskSnapConfig = New-AzSnapshotConfig -SourceUri $SourceDataDisk.ManagedDisk.Id -Location $SourceVmObject.Location -CreateOption copy
$SourceDataDiskSnap = New-AzSnapshot -Snapshot $SourceDataDiskSnapConfig -SnapshotName "$($SourceVmObject.Name)-$($SourceDataDisk.name)-snap" -ResourceGroupName $SourceVmObject.ResourceGroupName
$TargetDataDiskConfig = New-AzDiskConfig -AccountType $SourceDataDiskSku -Location $SourceVmObject.Location -CreateOption Copy -SourceResourceId $SourceDataDiskSnap.Id
$TargetDataDisk = New-AzDisk -Disk $TargetDataDiskConfig -ResourceGroupName $SourceVmObject.ResourceGroupName -DiskName "$($vmNewName.ToLower())-$($SourceDataDisk.lun)-vhd"
Add-AzVMDataDisk -VM $NewVmObject -Name "$($vmNewName.ToLower())-$($SourceDataDisk.lun)-vhd" -ManagedDiskId $TargetDataDisk.Id -Lun $SourceDataDisk.lun -CreateOption "Attach"
}
Write-Host "Creating..."
New-AzVM -VM $NewVmObject -ResourceGroupName $SourceVmObject.ResourceGroupName -Location $SourceVmObject.Location
Write-Host "VM Created..."
라이언맨은 이미 올리버 미오섹이 쓴 대본을 게시했습니다.그러나 이 스크립트는 윈도우즈 VM에만 사용할 수 있습니다.
Linux VM에서도 작동하도록 osType을 지정하기 위해 인수(-osType)를 추가했습니다.
업데이트 1: 소스 VM의 OS를 자동으로 감지하도록 스크립트를 업데이트했습니다.
업데이트 2: VM을 새 vnet 또는 서브넷으로 이동할 새 매개 변수 "-newSubnetId"가 추가됨(같은 구독에 있어야 함)
서브넷의 전체 URL을 지정해야 합니다.ID:
/subscriptions/<subscriptionID>/resourceGroups/<ressourceGroupName>/providers/Microsoft.Network/virtualNetworks/<virtualNetworkName>/subnets/<subnetName>
#Deletes and recreates a VM
param (
[Parameter(Mandatory=$true)]
[string]$vmOldName,
[Parameter(Mandatory=$true)]
[string]$vmNewName,
[Parameter(Mandatory=$true)]
[string]$rgName,
[string]$newLocation, #Optional, moves the VM to a new Geographic Location
[string]$newSubnetId #Optional, moves the VM to a new Subnet
)
$ErrorActionPreference = "Stop"
Write-Host "Get and shutdown old VM, Create new config"
$SourceVmObject = get-azvm -Name $vmOldName -ResourceGroupName $rgName
if ([string]::IsNullOrEmpty($newLocation)) {
$newLocation = $SourceVmObject.Location
Write-Host "No new location specified, using the current VM's existing location: $newLocation"
}
$SourceVmPowerStatus = (get-azvm -Name $SourceVmObject.Name -ResourceGroupName $SourceVmObject.ResourceGroupName -Status).Statuses | where-object code -like "PowerState*"
if ($SourceVmPowerStatus -ne "VM deallocated") {
stop-azVm -Name $SourceVmObject.Name -ResourceGroupName $SourceVmObject.ResourceGroupName -Force
Start-Sleep -Seconds 30 #Wait to ensure VM is shutdown.
}
$NewVmObject = New-AzVMConfig -VMName $vmNewName -VMSize $SourceVmObject.HardwareProfile.VmSize
Write-Host "Create new Network Objects"
if ([string]::IsNullOrEmpty($newSubnetId)) {
$subnetID = (Get-AzNetworkInterface -ResourceId $SourceVmObject.NetworkProfile.NetworkInterfaces[0].id).IpConfigurations.Subnet.id
Write-Host "No new Subnet specified, using the current VM's existing subnet: $subnetID"
} else {
$subnetID = $newSubnetId
Write-Host "new Subnet specified, $subnetID"
}
$nic = New-AzNetworkInterface -Name "$($vmNewName.ToLower())-0-nic" -ResourceGroupName $SourceVmObject.ResourceGroupName -Location $SourceVmObject.Location -SubnetId $SubnetId
Add-AzVMNetworkInterface -VM $NewVmObject -Id $nic.Id
Write-Host "Move OS Disk"
$SourceOsDiskSku = (get-azdisk -ResourceGroupName $SourceVmObject.ResourceGroupName -DiskName $SourceVmObject.StorageProfile.OsDisk.name).Sku.Name
$SourceOsDiskSnapConfig = New-AzSnapshotConfig -SourceUri $SourceVmObject.StorageProfile.OsDisk.ManagedDisk.Id -Location $SourceVmObject.Location -CreateOption copy
$SourceOsDiskSnap = New-AzSnapshot -Snapshot $SourceOsDiskSnapConfig -SnapshotName "$($SourceVmObject.Name)-os-snap" -ResourceGroupName $SourceVmObject.ResourceGroupName
$TargetOsDiskConfig = New-AzDiskConfig -AccountType $SourceOsDiskSku -Location $SourceVmObject.Location -CreateOption Copy -SourceResourceId $SourceOsDiskSnap.Id
$TargetOsDisk = New-AzDisk -Disk $TargetOsDiskConfig -ResourceGroupName $SourceVmObject.ResourceGroupName -DiskName "$($vmNewName.ToLower())-os-vhd"
Set-AzVMOSDisk -VM $NewVmObject -ManagedDiskId $TargetOsDisk.Id -CreateOption Attach $SourceVmObject.StorageProfile.OSDisk.OsType
$NewVmObject.StorageProfile.OSDisk.OsType = $SourceVmObject.StorageProfile.OSDisk.OsType
$NewVmObject.StorageProfile.OSDisk.Name = "$($vmNewName.ToLower())-os-vhd"
Write-Host "Create new Data Disks"
Foreach ($SourceDataDisk in $SourceVmObject.StorageProfile.DataDisks) {
$SourceDataDiskSku = (get-azdisk -ResourceGroupName $SourceVmObject.ResourceGroupName -DiskName $SourceDataDisk.name).Sku.Name
$SourceDataDiskSnapConfig = New-AzSnapshotConfig -SourceUri $SourceDataDisk.ManagedDisk.Id -Location $SourceVmObject.Location -CreateOption copy
$SourceDataDiskSnap = New-AzSnapshot -Snapshot $SourceDataDiskSnapConfig -SnapshotName "$($SourceVmObject.Name)-$($SourceDataDisk.name)-snap" -ResourceGroupName $SourceVmObject.ResourceGroupName
$TargetDataDiskConfig = New-AzDiskConfig -AccountType $SourceDataDiskSku -Location $SourceVmObject.Location -CreateOption Copy -SourceResourceId $SourceDataDiskSnap.Id
$TargetDataDisk = New-AzDisk -Disk $TargetDataDiskConfig -ResourceGroupName $SourceVmObject.ResourceGroupName -DiskName "$($vmNewName.ToLower())-$($SourceDataDisk.lun)-vhd"
Add-AzVMDataDisk -VM $NewVmObject -Name "$($vmNewName.ToLower())-$($SourceDataDisk.lun)-vhd" -ManagedDiskId $TargetDataDisk.Id -Lun $SourceDataDisk.lun -CreateOption "Attach"
}
Write-Host "Creating..."
New-AzVM -VM $NewVmObject -ResourceGroupName $SourceVmObject.ResourceGroupName -Location $SourceVmObject.Location
Write-Host "VM Created..."
내부 VM/애플리케이션 인스턴스에서 VM에 연결할 때 문제가 발생하는 경우/etc/sys 및 /etc/sys에서 이름을 변경할 수 있습니다.이 두 파일을 편집한 후에는 인스턴스를 다시 시작해야 합니다.
vi/etc/https
127.0.0.1 localhost localhost.localdomain
vi/etc/https
localhost.localdomain
Azure에서는 VM 리소스 이름을 배포한 후에는 수정할 수 없으므로 디스크를 유지하고 이전 디스크에 이어 적절한 이름으로 새 VM을 생성하는 것이 좋습니다.
VM 이름을 변경할 수는 없지만 VM 크기를 업데이트하거나 VM을 다른 리소스 그룹의 구독으로 이동하거나 변경할 수도 있습니다.
언급URL : https://stackoverflow.com/questions/49756148/change-azure-virtual-machine-name-in-azure-portal
'programing' 카테고리의 다른 글
Azure 함수 이름 바꾸기 (0) | 2023.05.23 |
---|---|
원격(원본) Git 저장소의 변경 사항을 확인하는 방법 (0) | 2023.05.23 |
R data.frame을 Excel 스프레드시트에 복사합니다. (0) | 2023.05.23 |
NSLocalizedString()의 두 번째 매개 변수는 무엇입니까? (0) | 2023.05.23 |
첫 번째 커밋을 제거하는 방법은 무엇입니까? (0) | 2023.05.23 |