Azure, clonare una vm versione 2 (resource manager)

Posted on 26 luglio 2016 di

0


Prima di tutto, in Azure, copiare un disco vhd di una vm da uno storage account ad un altro
Nel caso dobbiate cambiare storage account di un disco utilizzato da una vm, va spenta la vm destinazione e seguita questa serie di comandi dopo aver scaricato la Azure Powershell e dato il comando Add Azure-Account facendo login con le vostre credenziali.
Select-AzureSubscription "my subscription" 
 
### Source VHD  - authenticated container ###
$srcUri = "http://mwwestus1.blob.core.windows.net/sourceauth/testcopy1.vhd" 
 
### Source Storage Account  ###
$srcStorageAccount = "mwwestus1"
$srcStorageKey = "SOURCESTORAGEKEY"
 
### Target Storage Account  ###
$destStorageAccount = "mwwestus2"
$destStorageKey = "DESTSTORAGEKEY"
 
### Create the source storage account context ### 
$srcContext = New-AzureStorageContext  –StorageAccountName $srcStorageAccount `
                                        -StorageAccountKey $srcStorageKey  
 
### Create the destination storage account context ### 
$destContext = New-AzureStorageContext  –StorageAccountName $destStorageAccount `
                                        -StorageAccountKey $destStorageKey  
 
### Destination Container Name ### 
$containerName = "copiedvhds"
 
### Create the container on the destination ### 
New-AzureStorageContainer -Name $containerName -Context $destContext
### Start the asynchronous copy - specify the source authentication with 
-SrcContext 
### $blob1 = Start-AzureStorageBlobCopy -srcUri $srcUri `
 -SrcContext $srcContext `
 -DestContainer $containerName `
 -DestBlob "testcopy1.vhd" `
 -DestContext $destContext

Per controllare lo stato della copia:

### Retrieve the current status of the copy operation ###
$status = $blob1 | Get-AzureStorageBlobCopyState 
 
### Print out status ### 
$status 
 
### Loop until complete ###                                    
While($status.Status -eq "Pending"){
  $status = $blob1 | Get-AzureStorageBlobCopyState 
  Start-Sleep 10
  ### Print out status ###
  $status
}

Una volta terminata la copia del disco, va creata una nuova VM che ha per OS disk il disco copiato:

$VMName = 'servernameNEW'
$VMsize = 'Standard_DS1'
$VMVNET = 'VMVNETname'
$VMNETRG = 'VMVNETRGname'
$VMSubnet = 'VMSubnetname'
$VMIP = '10.12.8.5'
$OsDiskUri = 'https://servernameNEW.blob.core.windows.net/vhds/
servernameCopied.vhd'
$DestRG = 'DestRGname'
$Region = 'westeurope'

Login-AzurermAccount

Select-azurermsubscription -subscriptionName 'Microsoft Azure Enterprise'

$VM = New-AzureRmVMConfig -VMName $VMName -VMSize $VMsize
$VMVNETObject = Get-AzureRmVirtualNetwork -Name $VMVNET 
-ResourceGroupName $VMNETRG
$VMSubnetObject = Get-AzureRmVirtualNetworkSubnetConfig 
-Name $VMSubnet -VirtualNetwork $VMVNETObject

$VNIC = New-AzureRmNetworkInterface -Name $VMVNET 
-ResourceGroupName $DestRG -Location $Region 
-SubnetId $VMSubnetObject.Id -PrivateIpAddress $VMIP

Add-AzureRmVMNetworkInterface -VM $VM -Id $VNIC.Id

Set-AzureRmVMOSDisk -VM $VM -Name $VMName -VhdUri $OsDiskUri 
-CreateOption "Attach" -linux 

$NEWVM = New-AzureRmVM -ResourceGroupName $DestRG -Location $Region -VM $VM

 

Una volta terminata la creazione la macchina verrà accesa: effettuate un “redeploy” di sicurezza dal portale azure e raggiungerete la vostra nuova VM.

Annunci
Posted in: Microsoft