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 訂閱,並按照屏幕上的說明進行操作。
Login-AzureRmAccount -EnvironmentName AzureChinaCloud
創建資源組
使用 New-AzureRmResourceGroup 創建 Azure 資源組。 資源組是在其中部署和管理 Azure 資源的邏輯容器。
New-AzureRmResourceGroup -Name myResourceGroup -Location chinaeast
創建網絡資源
創建虛擬網絡、子網和公共 IP 地址。 這些資源用來與虛擬機建立網絡連接,以及連接到 Internet。
# 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 流量。
# 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 地址。
# 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
創建虛擬機
創建虛擬機配置。 此配置包括部署虛擬機時使用的設置,例如虛擬機映像、大小和身份驗證配置。
# 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 創建虛擬機。
New-AzureRmVM -ResourceGroupName myResourceGroup -Location chinaeast -VM $vmConfig
連接到虛擬機
完成部署后,請與虛擬機建立 SSH 連接。
使用 Get-AzureRmPublicIpAddress 命令返回虛擬機的公共 IP 地址。
Get-AzureRmPublicIpAddress -ResourceGroupName myResourceGroup | Select IpAddress
在裝有 SSH 的系統中,使用以下命令連接到虛擬機。 如果在 Windows 上操作,可以使用 Putty 來創建連接。
ssh <Public IP Address>
出現提示時,請輸入登錄用戶名 azureuser。 如果在創建 SSH 密鑰時輸入了密碼,還需要輸入此密碼。
安裝 NGINX
使用以下命令更新包源並安裝最新的 NGINX 包。
# update package source sudo apt-get -y update # install NGINX sudo apt-get -y install nginx
查看 NGIX 歡迎頁
NGINX 已安裝,並且現在已從 Internet 打開 VM 上的端口 80 - 可以使用所選的 Web 瀏覽器查看默認的 NGINX 歡迎頁。 請務必使用前面記錄的公共 IP 地址訪問默認頁面。
清理資源
如果不再需要資源組、VM 和所有相關的資源,可以使用 Remove-AzureRmResourceGroup 命令將其刪除。
Remove-AzureRmResourceGroup -Name myResourceGroup
后續步驟
在本快速入門中,部署了一個簡單的虛擬機、一條網絡安全組規則,並安裝了一個 Web 服務器。 若要詳細了解 Azure 虛擬機,請繼續學習 Linux VM 的教程。
立即訪問http://market.azure.cn