Een VIRTUELE machine (klassiek) met meerdere NIC's maken met behulp van PowerShell
U kunt virtuele machines (VM's) in Azure maken en meerdere netwerkinterfaces (NIC's) koppelen aan elk van uw VM's. Meerdere NIC's maken scheiding van verkeerstypen tussen NIC's mogelijk. Eén NIC kan bijvoorbeeld communiceren met internet, terwijl een andere alleen communiceert met interne bronnen die niet zijn verbonden met internet. De mogelijkheid om netwerkverkeer over meerdere NIC's te scheiden, is vereist voor veel virtuele netwerkapparaten, zoals oplossingen voor het leveren van toepassingen en WAN-optimalisatie.
Belangrijk
Azure heeft twee verschillende implementatiemodellen voor het maken en werken met resources: Resource Manager en klassiek. Dit artikel gaat over het gebruik van het klassieke implementatiemodel. U doet er verstandig aan voor de meeste nieuwe implementaties het Resource Manager-model te gebruiken. Meer informatie over het uitvoeren van deze stappen met behulp van het Resource Manager implementatiemodel.
Scenario
In dit document wordt een implementatie beschreven die gebruikmaakt van meerdere NIC's in VM's in een specifiek scenario. In dit scenario hebt u een IaaS-workload met twee lagen die wordt gehost in Azure. Elke laag wordt geïmplementeerd in een eigen subnet in een virtueel netwerk (VNet). De front-endlaag bestaat uit verschillende webservers, gegroepeerd in een load balancer-set voor hoge beschikbaarheid. De back-endlaag bestaat uit verschillende databaseservers. De databaseservers worden geïmplementeerd met elk twee NIC's, één voor databasetoegang, de andere voor beheer. Het scenario omvat ook netwerkbeveiligingsgroepen (NSG's) om te bepalen welk verkeer naar elk subnet is toegestaan en NIC in de implementatie. In de volgende afbeelding ziet u de basisarchitectuur van dit scenario:
In de volgende stappen wordt een resourcegroep met de naam IaaSStory gebruikt voor de WEBSERVERs en een resourcegroep met de naam IaaSStory-BackEnd voor de DB-servers .
Vereisten
Voordat u de DB-servers kunt maken, moet u de IaaSStory-resourcegroep maken met alle benodigde resources voor dit scenario. Voer de volgende stappen uit om deze resources te maken. Maak een virtueel netwerk door de stappen in het artikel Een virtueel netwerk maken te volgen.
Voorwaarde: installeer de Azure PowerShell-module
Als u de stappen in dit artikel wilt uitvoeren, moet u de Azure PowerShell-module installeren en configureren. Voltooi alle instructies. Nadat de installatie is voltooid, meldt u zich aan bij Azure en selecteert u uw abonnement.
Notitie
U hebt een Azure-account nodig om deze stappen uit te voeren. Als u nog geen Azure-account hebt, kunt u zich registreren voor een gratis proefversie.
De back-end-VM's maken
De back-end-VM's zijn afhankelijk van het maken van de volgende resources:
- Back-endsubnet. De databaseservers maken deel uit van een afzonderlijk subnet om verkeer te scheiden. In het onderstaande script wordt verwacht dat dit subnet bestaat in een vnet met de naam WTestVnet.
- Opslagaccount voor gegevensschijven. Voor betere prestaties gebruiken de gegevensschijven op de databaseservers ssd-technologie (Solid State Drive). Hiervoor is een Premium-opslagaccount vereist. Zorg ervoor dat de Azure-locatie die u implementeert ter ondersteuning van Premium Storage.
- Beschikbaarheidsset. Alle databaseservers worden toegevoegd aan één beschikbaarheidsset om ervoor te zorgen dat ten minste één van de VM's actief is tijdens onderhoud.
Stap 1: het script starten
U kunt het volledige PowerShell-script downloaden dat hier wordt gebruikt. Volg de onderstaande stappen om het script te wijzigen in uw omgeving.
Wijzig de waarden van de onderstaande variabelen op basis van uw bestaande resourcegroep die hierboven is geïmplementeerd in Vereisten.
$location = "West US" $vnetName = "WTestVNet" $backendSubnetName = "BackEnd"
Wijzig de waarden van de onderstaande variabelen op basis van de waarden die u wilt gebruiken voor uw back-endimplementatie.
$backendCSName = "IaaSStory-Backend" $prmStorageAccountName = "iaasstoryprmstorage" $avSetName = "ASDB" $vmSize = "Standard_DS3" $diskSize = 127 $vmNamePrefix = "DB" $dataDiskSuffix = "datadisk" $ipAddressPrefix = "192.168.2." $numberOfVMs = 2
Stap 2: de benodigde resources voor uw VM's maken
U moet een nieuwe cloudservice en een opslagaccount maken voor de gegevensschijven voor alle VM's. U moet ook een installatiekopieën en een lokaal beheerdersaccount voor de VM's opgeven. Voer de volgende stappen uit om deze resources te maken:
Maak een nieuwe cloudservice.
New-AzureService -ServiceName $backendCSName -Location $location
Maak een nieuw Premium-opslagaccount.
New-AzureStorageAccount -StorageAccountName $prmStorageAccountName ` -Location $location -Type Premium_LRS
Stel het hierboven gemaakte opslagaccount in als het huidige opslagaccount voor uw abonnement.
$subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true} Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName ` -CurrentStorageAccountName $prmStorageAccountName
Selecteer een installatiekopieën voor de virtuele machine.
$image = Get-AzureVMImage ` | where{$_.ImageFamily -eq "SQL Server 2014 RTM Web on Windows Server 2012 R2"} ` | sort PublishedDate -Descending ` | select -ExpandProperty ImageName -First 1
Stel de referenties voor het lokale beheerdersaccount in.
$cred = Get-Credential -Message "Enter username and password for local admin account"
Stap 3: VM's maken
U moet een lus gebruiken om zoveel vm's te maken als u wilt en de benodigde NIC's en VM's binnen de lus te maken. Voer de volgende stappen uit om de NIC's en VM's te maken.
Start een
for
lus om de opdrachten te herhalen voor het maken van een VIRTUELE machine en twee NIC's zo vaak als nodig is, op basis van de waarde van de$numberOfVMs
variabele.for ($suffixNumber = 1; $suffixNumber -le $numberOfVMs; $suffixNumber++){
Maak een
VMConfig
object met de installatiekopieën, grootte en beschikbaarheidsset voor de virtuele machine.$vmName = $vmNamePrefix + $suffixNumber $vmConfig = New-AzureVMConfig -Name $vmName ` -ImageName $image ` -InstanceSize $vmSize ` -AvailabilitySetName $avSetName
Richt de VIRTUELE machine in als een Windows-VM.
Add-AzureProvisioningConfig -VM $vmConfig -Windows ` -AdminUsername $cred.UserName ` -Password $cred.GetNetworkCredential().Password
Stel de standaard-NIC in en wijs deze toe aan een statisch IP-adres.
Set-AzureSubnet -SubnetNames $backendSubnetName -VM $vmConfig Set-AzureStaticVNetIP -IPAddress ($ipAddressPrefix+$suffixNumber+3) -VM $vmConfig
Voeg een tweede NIC toe voor elke VIRTUELE machine.
Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) ` -SubnetName $backendSubnetName ` -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) ` -VM $vmConfig
Maken naar gegevensschijven voor elke virtuele machine.
$dataDisk1Name = $vmName + "-" + $dataDiskSuffix + "-1" Add-AzureDataDisk -CreateNew -VM $vmConfig ` -DiskSizeInGB $diskSize ` -DiskLabel $dataDisk1Name ` -LUN 0 $dataDisk2Name = $vmName + "-" + $dataDiskSuffix + "-2" Add-AzureDataDisk -CreateNew -VM $vmConfig ` -DiskSizeInGB $diskSize ` -DiskLabel $dataDisk2Name ` -LUN 1
Maak elke virtuele machine en beëindig de lus.
New-AzureVM -VM $vmConfig ` -ServiceName $backendCSName ` -Location $location ` -VNetName $vnetName }
Stap 4: het script uitvoeren
Nu u het script hebt gedownload en gewijzigd op basis van uw behoeften, voert u het script uit om de back-enddatabase-VM's met meerdere NIC's te maken.
Sla uw script op en voer het uit vanaf de PowerShell-opdrachtprompt of PowerShell ISE. U ziet de initiële uitvoer, zoals hieronder wordt weergegeven.
OperationDescription OperationId OperationStatus New-AzureService xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded New-AzureStorageAccount xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded WARNING: No deployment found in service: 'IaaSStory-Backend'.
Vul de informatie in die nodig is in de prompt voor referenties en klik op OK. De volgende uitvoer wordt geretourneerd.
New-AzureVM xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded New-AzureVM xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
Stap 5: routering configureren binnen het besturingssysteem van de VIRTUELE machine
Azure DHCP wijst een standaardgateway toe aan de eerste (primaire) netwerkinterface die is gekoppeld aan de virtuele machine. Azure wijst geen standaardgateway toe aan extra (secundaire) netwerkinterfaces die zijn gekoppeld aan een virtuele machine. Daarom kunt u standaard niet communiceren met resources buiten het subnet waarin een secundaire netwerkinterface zich bevindt. Secundaire netwerkinterfaces kunnen echter wel communiceren met resources buiten hun subnet. Zie de volgende artikelen voor het configureren van routering voor secundaire netwerkinterfaces: