Creare una VM con un indirizzo IP pubblico statico mediante Azure PowerShellCreate a VM with a static public IP address using PowerShell

È possibile creare macchine virtuali (VM) in Azure ed esporle a Internet pubblico tramite un indirizzo IP pubblico.You can create virtual machines (VMs) in Azure and expose them to the public Internet by using a public IP address. Per impostazione predefinita, gli IP pubblici sono dinamici e l'indirizzo associato può cambiare quando la VM viene eliminata o arrestata/deallocata.By default, Public IPs are dynamic and the address associated to them may change when the VM is deleted or stopped/deallocated. Per garantire che la VM utilizzi sempre lo stesso indirizzo IP pubblico, è necessario creare un IP pubblico statico.To guarantee that the VM always uses the same public IP address, you need to create a static Public IP.

Prima di implementare gli IP pubblici statici nelle VM, è necessario capire quando e come si possono usare gli IP pubblici statici.Before you can implement static Public IPs in VMs, it is necessary to understand when you can use static Public IPs, and how they are used. Leggere la panoramica sugli indirizzi IP per altre informazioni sull'indirizzamento IP in Azure.Read the IP addressing overview to learn more about IP addressing in Azure.

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica. Questo articolo illustra l'uso del modello di distribuzione Resource Manager che Microsoft consiglia di usare invece del modello di distribuzione classica per le distribuzioni più recenti.

ScenarioScenario

In questo documento verrà illustrata una distribuzione che usa un indirizzo IP pubblico statico allocato a una macchina virtuale (VM).This document will walk through a deployment that uses a static public IP address allocated to a virtual machine (VM). In questo scenario, si dispone di una singola VM con il proprio indirizzo IP pubblico statico.In this scenario, you have a single VM with its own static public IP address. La VM fa parte di una subnet denominata FrontEnd e ha anche un indirizzo IP privato statico (192.168.1.101) nella subnet.The VM is part of a subnet named FrontEnd and also has a static private IP address (192.168.1.101) in that subnet.

Potrebbe essere necessario un indirizzo IP statico per i server Web che richiedono connessioni SSL in cui il certificato SSL è collegato a un indirizzo IP.You may need a static IP address for web servers that require SSL connections in which the SSL certificate is linked to an IP address.

DESCRIZIONE DELL’IMMAGINE

È possibile seguire i passaggi riportati sotto per distribuire l'ambiente illustrato nella figura precedente.You can follow the steps below to deploy the environment shown in the figure above.

Prerequisito: installare il modulo Azure PowerShellPrerequisite: Install the Azure PowerShell module

Per eseguire i passaggi indicati in questo articolo, è necessario installare e configurare il modulo Azure PowerShell.To perform the steps in this article, you need to install and configure the Azure PowerShell module. Assicurarsi di completare tutte le istruzioni.Be sure to complete all of the instructions. Al termine dell'installazione, accedere ad Azure e selezionare la sottoscrizione.After the installation is finished, sign in to Azure and select your subscription.

Nota

Per completare questi passaggi, è necessario un account Azure.You need an Azure account to complete these steps. Se non si ha un account Azure, è possibile iscriversi per ottenere una versione di valutazione gratuita.If you don't have an Azure account, you can sign up for a free trial.

Avviare lo scriptStart your script

È possibile scaricare lo script di PowerShell completo utilizzato qui.You can download the full PowerShell script used here. Attenersi alla procedura seguente per modificare lo script da usare nell'ambiente.Follow the steps below to change the script to work in your environment.

Modificare i valori delle variabili indicate di seguito in base ai valori che si desidera usare per la distribuzione.Change the values of the variables below based on the values you want to use for your deployment. I valori seguenti si riferiscono allo scenario usato in questo articolo:The following values map to the scenario used in this article:

# Set variables resource group
$rgName                = "IaaSStory"
$location              = "West US"

# Set variables for VNet
$vnetName              = "WTestVNet"
$vnetPrefix            = "192.168.0.0/16"
$subnetName            = "FrontEnd"
$subnetPrefix          = "192.168.1.0/24"

# Set variables for storage
$stdStorageAccountName = "iaasstorystorage"

# Set variables for VM
$vmSize                = "Standard_A1"
$diskSize              = 127
$publisher             = "MicrosoftWindowsServer"
$offer                 = "WindowsServer"
$sku                   = "2012-R2-Datacenter"
$version               = "latest"
$vmName                = "WEB1"
$osDiskName            = "osdisk"
$nicName               = "NICWEB1"
$privateIPAddress      = "192.168.1.101"
$pipName               = "PIPWEB1"
$dnsName               = "iaasstoryws1"

Creare le risorse necessarie per la macchina virtualeCreate the necessary resources for your VM

Prima di creare una VM, è necessario disporre di un gruppo di risorse, una rete virtuale, un IP pubblico e una scheda di rete utilizzabili dalla VM.Before creating a VM, you need a resource group, VNet, public IP, and NIC to be used by the VM.

  1. Creare un nuovo gruppo di risorse.Create a new resource group.

    New-AzureRmResourceGroup -Name $rgName -Location $location
    
  2. Creare rete virtuale e subnet.Create the VNet and subnet.

    $vnet = New-AzureRmVirtualNetwork -ResourceGroupName $rgName -Name $vnetName `
        -AddressPrefix $vnetPrefix -Location $location
    
    Add-AzureRmVirtualNetworkSubnetConfig -Name $subnetName `
        -VirtualNetwork $vnet -AddressPrefix $subnetPrefix
    
    Set-AzureRmVirtualNetwork -VirtualNetwork $vnet
    
  3. Creare la risorsa di IP pubblico.Create the public IP resource.

    $pip = New-AzureRmPublicIpAddress -Name $pipName -ResourceGroupName $rgName `
        -AllocationMethod Static -DomainNameLabel $dnsName -Location $location
    
  4. Creare l'interfaccia di rete (NIC) per la VM nella subnet creata in precedenza, con l'IP pubblico.Create the network interface (NIC) for the VM in the subnet created above, with the public IP. Notare che il primo cmdlet che recupera la rete virtuale da Azure è necessario perché Set-AzureRmVirtualNetwork è stato eseguito per modificare la rete virtuale esistente.Notice the first cmdlet retrieving the VNet from Azure, this is necessary since a Set-AzureRmVirtualNetwork was executed to change the existing VNet.

    $vnet = Get-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName
    $subnet = Get-AzureRmVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $subnetName
    $nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName `
        -Subnet $subnet -Location $location -PrivateIpAddress $privateIPAddress `
        -PublicIpAddress $pip
    
  5. Creare un account di archiviazione per ospitare l'unità del sistema operativo della VM.Create a storage account to host the VM OS drive.

    $stdStorageAccount = New-AzureRmStorageAccount -Name $stdStorageAccountName `
    -ResourceGroupName $rgName -Type Standard_LRS -Location $location
    

Creare la VMCreate the VM

Ora che tutte le risorse necessarie sono presenti, è possibile creare una nuova VM.Now that all necessary resources are in place, you can create a new VM.

  1. Creare l'oggetto di configurazione per la VM.Create the configuration object for the VM.

    $vmConfig = New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize
    
  2. Ottenere le credenziali per l'account amministratore locale della VM.Get credentials for the VM local administrator account.

    $cred = Get-Credential -Message "Type the name and password for the local administrator account."
    
  3. Creare un oggetto di configurazione della VM.Create a VM configuration object.

    $vmConfig = Set-AzureRmVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName `
        -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
    
  4. Impostare l'immagine del sistema operativo per la VM.Set the operating system image for the VM.

    $vmConfig = Set-AzureRmVMSourceImage -VM $vmConfig -PublisherName $publisher `
        -Offer $offer -Skus $sku -Version $version
    
  5. Configurare il disco del sistema operativo.Configure the OS disk.

    $osVhdUri = $stdStorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $osDiskName + ".vhd"
    $vmConfig = Set-AzureRmVMOSDisk -VM $vmConfig -Name $osDiskName -VhdUri $osVhdUri -CreateOption fromImage
    
  6. Aggiungere la scheda di rete alla VM.Add the NIC to the VM.

    $vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $nic.Id -Primary
    
  7. Creare la macchina virtualeCreate the VM.

    New-AzureRmVM -VM $vmConfig -ResourceGroupName $rgName -Location $location
    
  8. Salvare il file di script.Save the script file.

Esecuzione dello scriptRun the script

Dopo aver apportato le modifiche necessarie, eseguire lo script precedente.After making any necessary changes, run the previous script. La creazione della macchina virtuale richiede alcuni minuti.The virtual machine is created after a few minutes.

Impostare gli indirizzi IP all'interno del sistema operativoSet IP addresses within the operating system

Non assegnare mai manualmente l'indirizzo IP pubblico assegnato a una macchina virtuale di Azure all'interno del sistema operativo della macchina virtuale.You should never manually assign the public IP address assigned to an Azure virtual machine within the virtual machine's operating system. È consigliabile non assegnare staticamente l'indirizzo IP privato assegnato alla macchina virtuale di Azure all'interno del sistema operativo di una macchina virtuale, se non necessario, ad esempio durante l'assegnazione di più indirizzi IP a una macchina virtuale Windows.It’s recommended that you do not statically assign the private IP assigned to the Azure virtual machine within the operating system of a VM, unless necessary, such as when assigning multiple IP addresses to a Windows VM. Se si imposta manualmente l'indirizzo IP privato all'interno del sistema operativo, assicurarsi che sia uguale all'indirizzo IP privato assegnato all'interfaccia di rete di Azure. In caso contrario, si può perdere la connettività alla macchina virtuale.If you do manually set the private IP address within the operating system, ensure that it is the same address as the private IP address assigned to the Azure network interface, or you can lose connectivity to the virtual machine. Altre informazioni sulle impostazioni dell'indirizzo IP privato.Learn more about private IP address settings.

Passaggi successiviNext steps

Qualsiasi traffico di rete può scorrere da e verso la VM creata in questo articolo.Any network traffic can flow to and from the VM created in this article. All'interno di un gruppo di sicurezza di rete è possibile definire regole di sicurezza in entrata e in uscita che limitano il traffico in ingresso e in uscita dall'interfaccia di rete, la subnet o entrambe le risorse.You can define inbound and outbound security rules within a network security group that limit the traffic that can flow to and from the network interface, the subnet, or both. Per altre informazioni sui gruppi di sicurezza di rete, vedere Panoramica dei gruppi di sicurezza di rete.To learn more about network security groups, see Network security group overview.