در یکی از وبلاگ های من، ما در مورد ارائه ماشین های مجازی از طریق رابط خط فرمان (CLI) دیده ایم. در اینجا، در این مقاله، می خواهیم ببینیم که چگونه از دستورات PowerShell برای ایجاد ماشین های مجازی لینوکس استفاده می شود. برای شروع، ما باید محیط را روی ماشین محلی خود پیکربندی کنیم.
برای شروع آن، خط فرمان PowerShell را باز کنید و ماژول Azure زیر را نصب کنید.
- Install-Module AzureRM.Netcore
پس از نصب ماژول در جلسه PowerShell، باید جلسه PowerShell را در یکی از حساب های اشتراک Azure احراز هویت کنیم تا VM ایجاد شود. برای اتصال به اشتراک Azure کد زیر را در PowerShell اجرا کنید.
- Connect-AzureRMAccount -Subscription 'Demo Account'
هنگام اجرای دستور بالا، یک اعلان به صفحه نمایش شما نشان داده می شود که نام کاربری و رمز عبور معتبر را وارد کنید. نام کاربری و رمز عبوری را که به اشتراک فوق دسترسی دارند وارد کنید.
حالا بیایید VM لینوکس را با دستورات PowerShell ایجاد کنیم. برای شروع آن، از گروه منابع موجود استفاده می کنیم و آن را به متغیر $rg اختصاص می دهیم.
- $rg = Get-AzureRMResourGroup `
- -Name 'demo-rg' `
- -Location 'centralus'
سپس با اجرای کد زیر، Subnet Configuration را ایجاد کنید. این مقادیر را به متغیری به نام $subnetconfig اختصاص می دهد.
- $subnetconfig = New-AzureRMVirtualNetworkSubnetConfig `
- -Name 'demo-subnet-2' `
- -AddressPrefix '10.2.1.0/24'
مرحله بعدی ایجاد یک شبکه مجازی با مقدار ایجاد شده در گروه منابع و متغیرهای زیر شبکه فوق است. بنابراین، بیایید نحوه ایجاد شبکه مجازی را در زیر ببینیم.
- $vnet = New-AzureRMVirtualNetowrk `
- -ResourceGroupName $rg.ResourceGroupName `
- -Location $rg.Location `
- -Name 'demo-vnet-2' `
- -AddressPrefix '10.2.0.0/16' `
- -Subnet $subnetConfig
کد بالا شبکه مجازی را ایجاد می کند و مقادیر را به متغیر $vnet نیز اختصاص می دهد. حال باید در مرحله بعد آدرس IP عمومی را ایجاد کنیم.
- $pip = New-AzureRmPublicIpAddress '
- -ResourceGroupName $rg.ResourceGroupName `
- -Location $rg.Location
- -Name 'demo-linux-2-pip-1'`
- -AllocationMethod Static
این کد بالا آدرس عمومی را برای گروه منبع ایجاد می کند و مقادیر را به متغیر $pip اختصاص می دهد. اکنون، باید قانون گروه امنیت شبکه را با رویکردی جزئی تر ایجاد کنیم.
- $rule1 = New-AzureRmNetworkSecurityRuleConfig `
- -Name ssh-rule `
- -Description 'Allow SSH' `
- -Access Allow `
- -Protocol TCP`
- -Direction Inbound`
- -Prority 100`
- -SourceAddressPrefix Internet `
- -SourcePortRange * `
- -DestinationAddressPrefix *`
- -DesitnationPortRange 22
با استفاده از قانون فوق، یک گروه امنیت شبکه ایجاد کنید. در اینجا قصد داریم با اجرای کد زیر در PowerShell، قانون فوق را که در گروه امنیتی شبکه جدید تعریف شده است، اعمال کنیم.
- $nsg = NewAzureRmNetworkSecurityGroup '
- -ResoureGroupName $rg.ResourceGroupName `
- -Location $rg.Location `
- -Name 'demo-Linux-nsg-2'`
- -SecurityRules $rule1
نکته مهم بعدی ایجاد کارت مجازی و ارتباط با آدرس IP عمومی و گروه امنیت شبکه (NSG) است. برای انجام این کار، ابتدا شیئی را که در زیرشبکه فعلی ما نشان می دهد، بگیرید.
- $subnet = $vnet.subnets | where-Object { $_.Name -eq 'demo-subnet-2' }