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 地址访问默认页面。

清理资源

如果不再需要资源组、VM 和所有相关的资源,可以使用 Remove-AzureRmResourceGroup 命令将其删除。

PowerShell复制
Remove-AzureRmResourceGroup -Name myResourceGroup

后续步骤

在本快速入门中,部署了一个简单的虚拟机、一条网络安全组规则,并安装了一个 Web 服务器。 若要详细了解 Azure 虚拟机,请继续学习 Linux VM 的教程。

Azure Linux 虚拟机教程

立即访问http://market.azure.cn

最新文章

  1. tp框架总结(三)
  2. 【编程题目】n 个数字(0,1,…,n-1)形成一个圆圈,从数字 0 开始
  3. [solr] - 环境搭建2
  4. ssh免密码登陆
  5. Delphi结构体数组指针的问题
  6. iOS开发——总结篇&amp;IOS开发基础知识
  7. linux管道学习(二)
  8. [ACM] HDU 5025 Saving Tang Monk (状态压缩,BFS)
  9. nodejs抓取网页内容
  10. 依赖注入 | Dependency Injection
  11. 年度酷工作---高级数据工程师(公司靠谱,技术强悍,产品牛叉,福利有干货) 关键词:7000万用户、五星级厨师、住房补助 - V2EX
  12. Libevent(2.1.8)中的事件结构和管理
  13. reverse函数实现指定页面跳转
  14. webstorm-快捷键大全
  15. percona-xtrabackup快速安装及其简单使用
  16. shiro的基本认识及做一个简单的授权登陆的例子
  17. html5-块元素和内联元素
  18. ionic3+angular5页面间传递参数
  19. 关于C3P0容错和自动重连特性的研究
  20. Memcached与KVDB的区别

热门文章

  1. Hbase 维护
  2. centos中软件源码简单的编译安装./configure,make ,make install
  3. 在Pycharm中使用AutoPEP8来检验代码的规范性
  4. Linux的MySQL不能远程访问
  5. HTTP状态码列表
  6. JS的作用域和声明提前
  7. MySQL常用命令操作
  8. VM CentOS 问题汇总
  9. vs2010查看quartz.net 2.1.2的源码时其中一报错的解决方法
  10. 无法正常下载Nuget 包的问题