我要指定Azure 存储的 SSH公钥,虚拟网络、子网、可用性集、资源组、Size
时间: 2024-09-25 20:13:13 浏览: 9
在Azure中创建一个新的虚拟机,并指定SSH公钥、虚拟网络、子网、可用性集和资源组时,你需要按照以下步骤操作:
1. **设置SSH公钥**:
- 在Azure Portal或PowerShell中,进入“设置” -> “访问控制” -> “密钥”,生成一个新的SSH公钥对,然后复制公钥内容。
- 在创建虚拟机的参数中添加 `PublicIpAddressConfiguration` 对象,其中包含 `SSH` 密钥的值。
2. **虚拟网络和子网**:
- 在Azure Portal中,先创建或选择一个现有虚拟网络 (VNet),然后创建子网 (Subnet) 并将其附加到VNet。
- 在创建虚拟机时,提供你刚刚创建的子网名称作为`VirtualNetworkName`和`SubnetName`属性。
3. **可用性集**:
- 可用性集用于提高虚拟机的高可用性。在Azure门户里找到你的资源组,点击“添加”->“可用性集”,然后分配给你的虚拟机。
4. **资源组**:
- 确定你要将虚拟机放入哪个资源组。在创建VM时,指定 `ResourceGroupName` 属性为你想要的资源组名字。
5. **VM Size(规格)**:
- 根据业务需求选择合适的VM Size,比如内存、处理器核心数等。Azure提供多种预设的VM大小类别,如Standard系列、LowPriority系列等。在PowerShell中可以参考 `$vmSizes` 变量或Azure Portal中的“规格”选项来选择。
示例PowerShell代码片段:
```powershell
# 假设变量 $sshKeyContent 存储了SSH公钥内容
$publicIPConfig = New-DnsNameLabel "myvm-dns-label" -IdleTimeoutInMinutes 4
$subnetRef = Get-AzVirtualNetwork subnet -ResourceGroupName "myResourceGroup" -Name "mySubnet"
$avSetRef = Get-AzAvailabilitySet -ResourceGroupName "myResourceGroup" -Name "myAvailabilitySet"
$vm = New-AzVMConfig -Name "myVM" `
-ComputerName "myVMName" `
-ImageId "Canonical:UbuntuServer:18.04-LTS:latest" `
-Ssh -PublicKeys @{KeyData = $sshKeyContent} `
-Size "Standard_DS2_v2" `
-VNetName "myVNet" `
-SubnetId $subnetRef.Id `
-AvailabilitySetName $avSetRef.Id `
-PublicIPAddressConfig $publicIPConfig
New-AzVM -ResourceGroupName "myResourceGroup" -VM $vm
```