使用 PowerShell 創建 Linux 虛擬機


Azure PowerShell 模塊用於從 PowerShell 命令行或腳本創建和管理 Azure 資源。 本指南詳細介紹了如何使用 Azure PowerShell 模塊部署運行 Ubuntu 服務器的虛擬機。 服務器部署以后,將創建 SSH 連接,並且安裝 NGINX webserver。

如果沒有 Azure 訂閱,可在開始前創建一個試用帳戶

本快速入門需要 Azure PowerShell 模塊 3.6 或更高版本。 運行 Get-Module -ListAvailable AzureRM 即可查找版本。 如果需要進行安裝或升級,請參閱安裝 Azure PowerShell 模塊

最后,需要在 Windows 用戶配置文件的 .ssh 目錄中存儲名為 id_rsa.pub 的公共 SSH 密鑰。 有關創建適用於 Azure 的 SSH 密鑰的詳細信息,請參閱創建適用於 Azure 的 SSH 密鑰

登錄 Azure

使用 Login-AzureRmAccount -EnvironmentName AzureChinaCloud 命令登錄到 Azure 訂閱,並按照屏幕上的說明進行操作。

PowerShell
Login-AzureRmAccount -EnvironmentName AzureChinaCloud 

創建資源組

使用 New-AzureRmResourceGroup 創建 Azure 資源組。 資源組是在其中部署和管理 Azure 資源的邏輯容器。

PowerShell
New-AzureRmResourceGroup -Name myResourceGroup -Location chinaeast 

創建網絡資源

創建虛擬網絡、子網和公共 IP 地址。 這些資源用來與虛擬機建立網絡連接,以及連接到 Internet。

PowerShell
# Create a subnet configuration $subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name mySubnet -AddressPrefix 192.168.1.0/24 # Create a virtual network $vnet = New-AzureRmVirtualNetwork -ResourceGroupName myResourceGroup -Location chinaeast ` -Name MYvNET -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig # Create a public IP address and specify a DNS name $pip = New-AzureRmPublicIpAddress -ResourceGroupName myResourceGroup -Location chinaeast ` -AllocationMethod Static -IdleTimeoutInMinutes 4 -Name "mypublicdns$(Get-Random)" 

創建網絡安全組和網絡安全組規則。 網絡安全組使用入站和出站規則保護虛擬機。 在本例中,為端口 22 創建一個入站規則,該規則允許傳入的 SSH 連接。 我們還需要為端口 80 創建入站規則,以允許傳入的 Web 流量。

PowerShell
# Create an inbound network security group rule for port 22 $nsgRuleSSH = New-AzureRmNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleSSH  -Protocol Tcp ` -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * ` -DestinationPortRange 22 -Access Allow # Create an inbound network security group rule for port 80 $nsgRuleWeb = New-AzureRmNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleWWW  -Protocol Tcp ` -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * ` -DestinationPortRange 80 -Access Allow # Create a network security group $nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName myResourceGroup -Location chinaeast ` -Name myNetworkSecurityGroup -SecurityRules $nsgRuleSSH,$nsgRuleWeb 

使用 New-AzureRmNetworkInterface 為虛擬機創建網卡。 網卡將虛擬機連接到子網、網絡安全組和公共 IP 地址。

PowerShell
# Create a virtual network card and associate with public IP address and NSG $nic = New-AzureRmNetworkInterface -Name myNic -ResourceGroupName myResourceGroup -Location chinaeast ` -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id 

創建虛擬機

創建虛擬機配置。 此配置包括部署虛擬機時使用的設置,例如虛擬機映像、大小和身份驗證配置。

PowerShell
# Define a credential object $securePassword = ConvertTo-SecureString ' ' -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential ("azureuser", $securePassword) # Create a virtual machine configuration $vmConfig = New-AzureRmVMConfig -VMName myVM -VMSize Standard_D1 | ` Set-AzureRmVMOperatingSystem -Linux -ComputerName myVM -Credential $cred -DisablePasswordAuthentication | ` Set-AzureRmVMSourceImage -PublisherName Canonical -Offer UbuntuServer -Skus 16.04-LTS -Version latest | ` Add-AzureRmVMNetworkInterface -Id $nic.Id # Configure SSH Keys $sshPublicKey = Get-Content "$env:USERPROFILE\.ssh\id_rsa.pub" Add-AzureRmVMSshPublicKey -VM $vmconfig -KeyData $sshPublicKey -Path "/home/azureuser/.ssh/authorized_keys" 

使用 New-AzureRmVM 創建虛擬機。

PowerShell
New-AzureRmVM -ResourceGroupName myResourceGroup -Location chinaeast -VM $vmConfig 

連接到虛擬機

完成部署后,請與虛擬機建立 SSH 連接。

使用 Get-AzureRmPublicIpAddress 命令返回虛擬機的公共 IP 地址。

PowerShell
Get-AzureRmPublicIpAddress -ResourceGroupName myResourceGroup | Select IpAddress 

在裝有 SSH 的系統中,使用以下命令連接到虛擬機。 如果在 Windows 上操作,可以使用 Putty 來創建連接。

bash
ssh <Public IP Address>

出現提示時,請輸入登錄用戶名 azureuser。 如果在創建 SSH 密鑰時輸入了密碼,還需要輸入此密碼。

安裝 NGINX

使用以下命令更新包源並安裝最新的 NGINX 包。

bash
# update package source sudo apt-get -y update # install NGINX sudo apt-get -y install nginx 

查看 NGIX 歡迎頁

NGINX 已安裝,並且現在已從 Internet 打開 VM 上的端口 80 - 可以使用所選的 Web 瀏覽器查看默認的 NGINX 歡迎頁。 請務必使用前面記錄的公共 IP 地址訪問默認頁面。

NGINX 默認站點

清理資源

如果不再需要資源組、VM 和所有相關的資源,可以使用 Remove-AzureRmResourceGroup 命令將其刪除。

PowerShell
Remove-AzureRmResourceGroup -Name myResourceGroup 

后續步驟

在本快速入門中,部署了一個簡單的虛擬機、一條網絡安全組規則,並安裝了一個 Web 服務器。 若要詳細了解 Azure 虛擬機,請繼續學習 Linux VM 的教程。

Azure Linux 虛擬機教程              

立即訪問http://market.azure.cn


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM