איך ליצור מכונה ב-ARM עם מספר כרטיסי רשת בעזרת PowerShell

שלום לכולם,

החלטתי לפתוח את הבלוג שלי עם סקריפט מאוד נחמד שמאפשר לנו ליצור מכונה עם יותר מכרטיס רשת אחד.
כפי שאתם יודעים לא ניתן להגדיר היום מכונה עם יותר מכרטיס רשת אחד דרך הפורטל (ניתן ב-JSON template) ואין אפשרות להוסיף כרטיס רשת לאחר היצירה.
הסקריפט הזה יעזור לכם ליצור מכונה עם מספר כרטיסי רשת בקלות.

אז בואו נתחיל:

שלב א’ – בחירת ה-Image הרצוי

נשתמש במספר פקודות כדי לבחור Image ספציפי:

  • בחירת ה-Publisher מרשימה ארוכה ב-Marketplace, ניתן לצפות ברשימה בעזרת הפקודה:

Get-AzureRmVMImagePublisher –Location: <Azure Location> | Select PublisherName;

  • בחירת ה-Offer (הצעות) שיש ל-Publisher (המפיץ) להציע, ניתן לצפות ברשימה בעזרת הפקודה:

Get-AzureRmVMImageOffer –Location: <Azure Location> –Publisher: <Publisher Image> | Select Offer;

  • בחירת ה-SKU (מק”ט) שיש ל-Offer, בעזרת הפקודה:

Get-AzureRmVMImageSku –Location: <Azure Location> –Publisher: <Publisher Image> –Offer: <Offer Name> | Select Skus;

  • בחירת ה-Version שיש תחת ה-SKU, בעזרת הפקודה:

Get-AzureRmVMImage –Location: <Azure Location> –PublisherName: <Publisher Image> –Offer: <Offer Name> –Skus: <SKU>;

שלב ב’ – יצירת המכונה ב-Azure

אחרי שלמדנו איך לשלוף את ה-Image הרצוי, הגיע הזמן להתחיל עם יצירת המכונה.

להלן הסקריפט עבור יצירת מכונה עם 2 כרטיסי רשת (יש להשלים את החלק של Script Parameters בהתאם לסביבה שלכם):

##Script Parameters##

$RGName = <ResourceGroup Name>;
$Location = <Azure Location>;
$VNetName = <VNet Name>;
$SubnetName01 = <Subnet Name>;
$SubnetName02 = <Subnet Name>;
$StorageAccountName = <Storage Account>;
$VMSize = <Azure VM Type>;
$Publisher = <Publisher>;
$Offer = <Offer>;
$SKU = <SKU>;
$OSVersion = <OS Version>;
$VMName = <VM Name>;
$NicNamePrefix = <NIC Name Prefix>;

#Main Script
#Get VNet & Subnet Details
$VNet = Get-AzureRmVirtualNetwork -Name:$VNetName -ResourceGroupName:$RGName;
$Subnet1 = $VNet.Subnets|?{$_.Name -eq $SubnetName01};
$Subnet2 = $VNet.Subnets|?{$_.Name -eq $SubnetName02};

#Get Storage Account
$StorageAccount = Get-AzureRmStorageAccount -Name:$StorageAccountName -ResourceGroupName:$RGName;

#Create Network Interfaces
#Create NIC #1
$nic1Name = $NicNamePrefix + "-01"
$Nic1 = New-AzureRmNetworkInterface -Name:$nic1Name -ResourceGroupName:$RGName -Location:$Location -SubnetId:$Subnet1.Id;

#Create NIC #2
$nic2Name = $nicNamePrefix + "-02"
$nic2 = New-AzureRmNetworkInterface -Name:$nic2Name -ResourceGroupName:$RGName -Location:$Location -SubnetId:$Subnet2.Id;

#Create Azure VM Config
$vmConfig = New-AzureRmVMConfig -VMName:$VMName -VMSize:$VMSize;

#Set Admin Account and OS Type
$Credential = Get-Credential -Message "Type the name and password for local administrator account.";
$vmConfig = Set-AzureRmVMOperatingSystem -VM $vmConfig -Windows -ComputerName:$VMName -Credential:$Credential;

#Set Azure Image
$vmConfig = Set-AzureRmVMSourceImage -VM:$vmConfig -PublisherName:$Publisher -Offer:$Offer -Skus:$SKU -Version:$OSVersion;

#Set Primary Azure NIC
$vmConfig = Add-AzureRmVMNetworkInterface -VM:$vmConfig -Id:$nic1.Id -Primary;
$vmConfig = Add-AzureRmVMNetworkInterface -VM:$vmConfig -Id:$nic2.Id;

$osDiskName = $VMName + "-OS"
$osVhdUri = $StorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $osDiskName + ".vhd";
$vmConfig = Set-AzureRmVMOSDisk -VM:$vmConfig -Name:$osDiskName -VhdUri:$osVhdUri -CreateOption:fromImage;

#Create AzureVM
New-AzureRmVM -VM:$vmConfig -ResourceGroupName:$RGName -Location:$Location;

הגיע הזמן להריץ את הסקריפט Smile

יצירת מכונה בעלת 2 כרטיסי רשת עם מערכת הפעלה Windows 2012 R2 ב-West Europe:

P1

לאחר מספר דקות נוכל לראות את השירות שהקמנו בפורטל:

P2

וכרטיסי הרשת מתוך השרת:

P3

לינק להורדת הסקריפט: Create Azure VM with multiple network interfaces

שיהיה בהצלחה Smile

Be the first to comment

Leave a Reply

כתובת האימייל שלך לא תפורסם


*