Snelstartgids: een virtuele Linux-server maken met behulp van Power shell in Azure Stack hubQuickstart: Create a Linux server VM by using PowerShell in Azure Stack Hub

U kunt een Ubuntu Server 16,04 LTS virtuele machine (VM) maken met behulp van Azure Stack hub Power shell.You can create an Ubuntu Server 16.04 LTS virtual machine (VM) by using Azure Stack Hub PowerShell. In dit artikel maakt en gebruikt u een virtuele machine.In this article, you create and use a virtual machine. In dit artikel wordt ook beschreven hoe u:This article also shows you how to:

  • Maak verbinding met de virtuele machine met een externe client.Connect to the VM with a remote client.
  • Installeer een NGINX-webserver en Bekijk de standaard startpagina.Install an NGINX web server and view the default home page.
  • Ongebruikte resources opschonen.Clean up unused resources.

VereistenPrerequisites

  • Een Linux-installatie kopie in de Marketplace van Azure Stack hub.A Linux image in the Azure Stack Hub Marketplace. De Marketplace van Azure Stack hub beschikt niet standaard over een Linux-installatie kopie.The Azure Stack Hub Marketplace doesn't have a Linux image by default. Zorg ervoor dat de Azure Stack hub-operator de Ubuntu Server 16,04 LTS-installatie kopie biedt die u nodig hebt.Have the Azure Stack Hub operator provide the Ubuntu Server 16.04 LTS image you need. De operator kan de instructies gebruiken in Marketplace-items van Azure downloaden naar Azure stack hub.The operator can use the instructions in Download Marketplace items from Azure to Azure Stack Hub.

  • Azure Stack hub vereist een specifieke versie van de Azure CLI om de bijbehorende resources te maken en te beheren.Azure Stack Hub requires a specific version of the Azure CLI to create and manage its resources.

  • Een open bare SSH-sleutel (Secure Shell) met de naam id_rsa. pub opgeslagen in de map . ssh van uw Windows-gebruikers profiel.A public Secure Shell (SSH) key with the name id_rsa.pub saved in the .ssh directory of your Windows user profile. Zie een open bare SSH-sleutel gebruikenvoor meer informatie over het maken van SSH-sleutels.For detailed information about creating SSH keys, see Use an SSH public key.

Een resourcegroep makenCreate a resource group

Een resource groep is een logische container waarin u Azure Stack hub-resources kunt implementeren en beheren.A resource group is a logical container where you can deploy and manage Azure Stack Hub resources. Voer het volgende code blok uit om een resource groep te maken:To create a resource group, run the following code block:

Notitie

We hebben waarden toegewezen voor alle variabelen in de volgende code voorbeelden.We've assigned values for all variables in the following code examples. U kunt echter uw eigen waarden toewijzen.However, you can assign your own values.

# Create variables to store the location and resource group names.
$location = "local"
$ResourceGroupName = "myResourceGroup"

New-AzResourceGroup `
  -Name $ResourceGroupName `
  -Location $location

Opslagresources makenCreate storage resources

Maak een opslag account dat wordt gebruikt voor het opslaan van de uitvoer van de diagnostische gegevens over opstarten.Create a storage account that will be used for storing the boot diagnostics output.

# Create variables to store the storage account name and the storage account SKU information
$StorageAccountName = "mystorageaccount"
$SkuName = "Standard_LRS"

# Create a new storage account
$StorageAccount = New-AzStorageAccount `
  -Location $location `
  -ResourceGroupName $ResourceGroupName `
  -Type $SkuName `
  -Name $StorageAccountName

Set-AzCurrentStorageAccount `
  -StorageAccountName $storageAccountName `
  -ResourceGroupName $resourceGroupName

Netwerkresources makenCreate networking resources

Maak een virtueel netwerk, een subnet en een openbaar IP-adres.Create a virtual network, a subnet, and a public IP address. Deze resources worden gebruikt voor het maken van een netwerk verbinding met de virtuele machine.These resources are used to provide network connectivity to the VM.

# Create a subnet configuration
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name mySubnet `
  -AddressPrefix 192.168.1.0/24

# Create a virtual network
$vnet = New-AzVirtualNetwork `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -Name MyVnet `
  -AddressPrefix 192.168.0.0/16 `
  -Subnet $subnetConfig

# Create a public IP address and specify a DNS name
$pip = New-AzPublicIpAddress `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -AllocationMethod Static `
  -IdleTimeoutInMinutes 4 `
  -Name "mypublicdns$(Get-Random)"

Een netwerkbeveiligingsgroep en een regel voor de netwerkbeveiligingsgroep makenCreate a network security group and a network security group rule

De netwerk beveiligings groep beveiligt de virtuele machine met behulp van binnenkomende en uitgaande regels.The network security group secures the VM by using inbound and outbound rules. Maak een binnenkomende regel voor poort 3389 om binnenkomende Extern bureaublad verbindingen en een binnenkomende regel voor poort 80 toe te staan om inkomend webverkeer toe te staan.Create an inbound rule for port 3389 to allow incoming Remote Desktop connections and an inbound rule for port 80 to allow incoming web traffic.

# Create variables to store the network security group and rules names.
$nsgName = "myNetworkSecurityGroup"
$nsgRuleSSHName = "myNetworkSecurityGroupRuleSSH"
$nsgRuleWebName = "myNetworkSecurityGroupRuleWeb"


# Create an inbound network security group rule for port 22
$nsgRuleSSH = New-AzNetworkSecurityRuleConfig -Name $nsgRuleSSHName -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-AzNetworkSecurityRuleConfig -Name $nsgRuleWebName -Protocol Tcp `
-Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 80 -Access Allow

# Create a network security group
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName -Location $location `
-Name $nsgName -SecurityRules $nsgRuleSSH,$nsgRuleWeb

Een netwerk kaart voor de virtuele machine makenCreate a network card for the VM

De netwerk kaart verbindt de virtuele machine met een subnet, netwerk beveiligings groep en openbaar IP-adres.The network card connects the VM to a subnet, network security group, and public IP address.

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

Een virtuele machine makenCreate a VM

Maak een VM-configuratie.Create a VM configuration. Deze configuratie bevat de instellingen die moeten worden gebruikt wanneer u de virtuele machine implementeert (bijvoorbeeld gebruikers referenties, grootte en de VM-installatie kopie).This configuration includes the settings to use when you deploy the VM (for example, user credentials, size, and the VM image).

# Define a credential object
$UserName='demouser'
$securePassword = ConvertTo-SecureString ' ' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($UserName, $securePassword)

# Create the VM configuration object
$VmName = "VirtualMachinelatest"
$VmSize = "Standard_D1"
$VirtualMachine = New-AzVMConfig `
  -VMName $VmName `
  -VMSize $VmSize

$VirtualMachine = Set-AzVMOperatingSystem `
  -VM $VirtualMachine `
  -Linux `
  -ComputerName "MainComputer" `
  -Credential $cred

$VirtualMachine = Set-AzVMSourceImage `
  -VM $VirtualMachine `
  -PublisherName "Canonical" `
  -Offer "UbuntuServer" `
  -Skus "16.04-LTS" `
  -Version "latest"

# Set the operating system disk properties on a VM
$VirtualMachine = Set-AzVMOSDisk `
  -VM $VirtualMachine `
  -CreateOption FromImage | `
  Set-AzVMBootDiagnostics -ResourceGroupName $ResourceGroupName `
  -StorageAccountName $StorageAccountName -Enable |`
  Add-AzVMNetworkInterface -Id $nic.Id

# Configure SSH keys
$sshPublicKey = Get-Content "$env:USERPROFILE\.ssh\id_rsa.pub"

# Add the SSH key to the VM
Add-AzVMSshPublicKey -VM $VirtualMachine `
 -KeyData $sshPublicKey `
 -Path "/home/azureuser/.ssh/authorized_keys"

# Create the VM
New-AzVM `
  -ResourceGroupName $ResourceGroupName `
 -Location $location `
  -VM $VirtualMachine

VM snel maken: volledig scriptVM Quick Create: Full script

Notitie

Deze stap is in wezen de voor gaande code die samen worden samengevoegd, maar met een wacht woord in plaats van een SSH-sleutel voor verificatie.This step is essentially the preceding code merged together, but with a password rather than an SSH key for authentication.

## Create a resource group

<#
A resource group is a logical container where you can deploy and manage Azure Stack Hub resources. From your development kit or the Azure Stack Hub integrated system, run the following code block to create a resource group. Though we've assigned values for all the variables in this article, you can use these values or assign new ones.
#>

# Edit your variables, if required

# Create variables to store the location and resource group names
$location = "local"
$ResourceGroupName = "myResourceGroup"

# Create variables to store the storage account name and the storage account SKU information
$StorageAccountName = "mystorageaccount"
$SkuName = "Standard_LRS"

# Create variables to store the network security group and rules names
$nsgName = "myNetworkSecurityGroup"
$nsgRuleSSHName = "myNetworkSecurityGroupRuleSSH"
$nsgRuleWebName = "myNetworkSecurityGroupRuleWeb"

# Create variable for VM password
$VMPassword = 'Password123!'

# End of variables - no need to edit anything past that point to deploy a single VM

# Create a resource group
New-AzResourceGroup `
  -Name $ResourceGroupName `
  -Location $location

## Create storage resources

# Create a storage account, and then create a storage container for the Ubuntu Server 16.04 LTS image

# Create a new storage account
$StorageAccount = New-AzStorageAccount `
  -Location $location `
  -ResourceGroupName $ResourceGroupName `
  -Type $SkuName `
  -Name $StorageAccountName

Set-AzCurrentStorageAccount `
  -StorageAccountName $storageAccountName `
  -ResourceGroupName $resourceGroupName

# Create a storage container to store the VM image
$containerName = 'osdisks'
$container = New-AzureStorageContainer `
  -Name $containerName `
  -Permission Blob


## Create networking resources

# Create a virtual network, a subnet, and a public IP address, resources that are used provide network connectivity to the VM

# Create a subnet configuration
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name mySubnet `
  -AddressPrefix 192.168.1.0/24

# Create a virtual network
$vnet = New-AzVirtualNetwork `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -Name MyVnet `
  -AddressPrefix 192.168.0.0/16 `
  -Subnet $subnetConfig

# Create a public IP address and specify a DNS name
$pip = New-AzPublicIpAddress `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -AllocationMethod Static `
  -IdleTimeoutInMinutes 4 `
  -Name "mypublicdns$(Get-Random)"


### Create a network security group and a network security group rule

<#
The network security group secures the VM by using inbound and outbound rules. Create an inbound rule for port 3389 to allow incoming Remote Desktop connections and an inbound rule for port 80 to allow incoming web traffic.
#>

# Create an inbound network security group rule for port 22
$nsgRuleSSH = New-AzNetworkSecurityRuleConfig -Name $nsgRuleSSHName -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-AzNetworkSecurityRuleConfig -Name $nsgRuleWebName -Protocol Tcp `
-Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 80 -Access Allow

# Create a network security group
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName -Location $location `
-Name $nsgName -SecurityRules $nsgRuleSSH,$nsgRuleWeb

### Create a network card for the VM

# The network card connects the VM to a subnet, network security group, and public IP address.

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

## Create a VM
<#
Create a VM configuration. This configuration includes the settings used when deploying the VM. For example: user credentials, size, and the VM image.
#>

# Define a credential object
$UserName='demouser'
$securePassword = ConvertTo-SecureString $VMPassword -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($UserName, $securePassword)

# Create the VM configuration object
$VmName = "VirtualMachinelatest"
$VmSize = "Standard_D1"
$VirtualMachine = New-AzVMConfig `
  -VMName $VmName `
  -VMSize $VmSize

$VirtualMachine = Set-AzVMOperatingSystem `
  -VM $VirtualMachine `
  -Linux `
  -ComputerName "MainComputer" `
  -Credential $cred

$VirtualMachine = Set-AzVMSourceImage `
  -VM $VirtualMachine `
  -PublisherName "Canonical" `
  -Offer "UbuntuServer" `
  -Skus "16.04-LTS" `
  -Version "latest"

$osDiskName = "OsDisk"
$osDiskUri = '{0}vhds/{1}-{2}.vhd' -f `
  $StorageAccount.PrimaryEndpoints.Blob.ToString(),`
  $vmName.ToLower(), `
  $osDiskName

# Set the operating system disk properties on a VM
$VirtualMachine = Set-AzVMOSDisk `
  -VM $VirtualMachine `
  -Name $osDiskName `
  -VhdUri $OsDiskUri `
  -CreateOption FromImage | `
  Add-AzVMNetworkInterface -Id $nic.Id

# Create the VM
New-AzVM `
  -ResourceGroupName $ResourceGroupName `
 -Location $location `
  -VM $VirtualMachine

Verbinding maken met de virtuele machineConnect to the VM

Nadat u de virtuele machine hebt geïmplementeerd, configureert u hiervoor een SSH-verbinding.After you've deployed the VM, configure an SSH connection for it. Als u het open bare IP-adres van de virtuele machine wilt ophalen, gebruikt u de opdracht Get-AzPublicIpAddress :To get the public IP address of the VM, use the Get-AzPublicIpAddress command:

Get-AzPublicIpAddress -ResourceGroupName myResourceGroup | Select IpAddress

Gebruik vanaf een client systeem waarop SSH is geïnstalleerd de volgende opdracht om verbinding te maken met de virtuele machine.From a client system with SSH installed, use the following command to connect to the VM. Als u met Windows werkt, kunt u putty gebruiken om de verbinding te maken.If you're working on Windows, you can use PuTTY to create the connection.

ssh <Public IP Address>

Wanneer u wordt gevraagd, meldt u zich aan als azureuser.When you're prompted, sign in as azureuser. Als u een wachtwoordzin hebt gebruikt tijdens het maken van de SSH-sleutels, moet u de wachtwoordzin opgeven.If you used a passphrase when you created the SSH keys, you'll have to provide the passphrase.

De NGINX-webserver installerenInstall the NGINX web server

Voer het volgende script uit om pakket bronnen bij te werken en het meest recente NGINX-pakket te installeren:To update package resources and install the latest NGINX package, run the following script:

#!/bin/bash

# update package source
apt-get -y update

# install NGINX
apt-get -y install nginx

De welkomstpagina van NGINX weergevenView the NGINX welcome page

Als de NGINX-webserver is geïnstalleerd en poort 80 op uw virtuele machine is geopend, hebt u toegang tot de webserver met behulp van het open bare IP-adres van de virtuele machine.With the NGINX web server installed, and port 80 open on your VM, you can access the web server by using the VM's public IP address. Open een webbrowser en ga naar http://<public IP address> .Open a web browser, and go to http://<public IP address>.

De welkomst pagina van de NGINX-webserver

Resources opschonenClean up resources

U kunt de resources die u niet meer nodig hebt opschonen met behulp van de opdracht Remove-AzResourceGroup .You can clean up the resources that you don't need any longer by using the Remove-AzResourceGroup command. Als u de resource groep en alle bijbehorende resources wilt verwijderen, voert u de volgende opdracht uit:To delete the resource group and all its resources, run the following command:

Remove-AzResourceGroup -Name myResourceGroup

Volgende stappenNext steps

In deze Quick Start hebt u een virtuele machine van de Linux-server geïmplementeerd.In this quickstart, you deployed a basic Linux server VM. Ga voor meer informatie over Azure Stack hub-Vm's naar overwegingen voor vm's in azure stack hub.To learn more about Azure Stack Hub VMs, go to Considerations for VMs in Azure Stack Hub.