Rövid útmutató: Linux virtuális gép létrehozása az Azure-ban PowerShell-lel

Az Azure PowerShell-modul az Azure-erőforrások PowerShell-parancssorból vagy szkriptekkel történő létrehozására és kezelésére használható. Ez a rövid útmutató bemutatja, hogyan helyezhet üzembe az Azure PowerShell modullal Linux rendszerű virtuális gépeket (VM-eket) az Azure-ban. Ez a rövid útmutató a Canonical Ubuntu 18.04 LTS Marketplace-rendszerképét használja. A virtuális gép működésének megtekintéséhez létrehoz majd egy SSH-kapcsolatot a virtuális géppel, és telepíti az NGINX-webkiszolgálót.

Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

Az Azure Cloud Shell elindítása

Az Azure Cloud Shell egy olyan ingyenes interaktív kezelőfelület, amelyet a jelen cikkben található lépések futtatására használhat. A fiókjával való használat érdekében a gyakran használt Azure-eszközök már előre telepítve és konfigurálva vannak rajta.

A Cloud Shell megnyitásához válassza a Kipróbálás lehetőséget egy kódblokk jobb felső sarkában. A Copy (másolás) gombra kattintva másolja és illessze be a kódot a Cloud Shellbe, majd nyomja le az Enter billentyűt a futtatáshoz.

SSH-kulcspár létrehozása

SSH-kulcspár létrehozásához használja az ssh-keygen kulcsot. Ha már rendelkezésére áll egy SSH-kulcspár, kihagyhatja ezt a lépést.

ssh-keygen -t rsa -b 4096

A rendszer kérni fogja, hogy adja meg a kulcspár fájlnevét, vagy nyomja le az Enter billentyűt az alapértelmezett helyének a /home/<username>/.ssh/id_rsa használatára. Ha szeretné, jelszót is létrehozhat a kulcsokhoz.

Részletesebb információk az SSH-kulcspárok létrehozásáról: SSH-kulcsok használata Windows rendszeren.

Ha az SSH-kulcspárt a Cloud Shell használatával hozza létre, arendszer egy olyan tárfiókban tárolja azt, amelyet a Cloud Shell. Ne törölje a tárfiókot vagy a benne lévő fájlokat, amíg le nemkérte a kulcsokat, különben elveszíti a virtuális géphez való hozzáférést.

Erőforráscsoport létrehozása

Hozzon létre egy Azure-erőforráscsoportot a New-AzResourceGroup használatával. Az erőforráscsoportok olyan logikai tárolók, amelyekbe a rendszer üzembe helyezi az Azure-erőforrásokat és kezeli azokat:

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

Virtuális hálózati erőforrások létrehozása

Hozzon létre egy virtuális hálózatot, egy alhálózatot és egy nyilvános IP-címet. Ezek az erőforrások a virtuális gép hálózati csatlakoztatásának biztosítására, illetve az internethez csatlakoztatására használatosak:

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

# Create a virtual network
$vnet = New-AzVirtualNetwork `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -Name "myVNET" `
  -AddressPrefix 192.168.0.0/16 `
  -Subnet $subnetConfig

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

Hozzon létre egy Azure hálózati biztonsági csoportot és egy adatforgalmi szabályt. A hálózati biztonsági csoport bejövő és kimenő szabályok használatával teszi biztonságossá a virtuális gépet. A következő példában létrehozunk egy bejövő forgalomra vonatkozó szabályt a 22-es TCP-porthoz, amely engedélyezi az SSH-kapcsolatokat. A bejövő webforgalom engedélyezéséhez létrehozunk egy bejövő forgalomra vonatkozó szabályt is a 80-as TCP-porthoz.

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

# Create a network security group
$nsg = New-AzNetworkSecurityGroup `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -Name "myNetworkSecurityGroup" `
  -SecurityRules $nsgRuleSSH,$nsgRuleWeb

Hozzon létre egy virtuális hálózati adaptert (NIC) a New-AzNetworkInterface használatával. A virtuális hálózati kártya csatlakoztatja a virtuális gépet egy alhálózathoz, egy hálózati biztonsági csoporthoz és egy nyilvános IP-címhez.

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

Virtuális gép létrehozása

A PowerShellben a virtuális gépek létrehozáshoz egy konfigurációt kell létrehozni, amely a használni kívánt rendszerképpel, mérettel és hitelesítési beállításokkal egyező beállításokkal rendelkezik. A rendszer ezután ezzel a konfigurációval hozza létre a virtuális gépet.

Határozza meg az SSH hitelesítő adatokat, az operációs rendszer adatait és a virtuális gép méretét. Ebben a példában az SSH-kulcsot a ~/.ssh/id_rsa.pub fájl tárolja.

# 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-AzVMConfig `
  -VMName "myVM" `
  -VMSize "Standard_D1" | `
Set-AzVMOperatingSystem `
  -Linux `
  -ComputerName "myVM" `
  -Credential $cred `
  -DisablePasswordAuthentication | `
Set-AzVMSourceImage `
  -PublisherName "Canonical" `
  -Offer "UbuntuServer" `
  -Skus "18.04-LTS" `
  -Version "latest" | `
Add-AzVMNetworkInterface `
  -Id $nic.Id

# Configure the SSH key
$sshPublicKey = cat ~/.ssh/id_rsa.pub
Add-AzVMSshPublicKey `
  -VM $vmconfig `
  -KeyData $sshPublicKey `
  -Path "/home/azureuser/.ssh/authorized_keys"

Most kombinálja az előző konfigurációs definíciókat a New-AzVM-hez való létrehozáshoz:

New-AzVM `
  -ResourceGroupName "myResourceGroup" `
  -Location eastus -VM $vmConfig

A virtuális gép üzembe helyezése eltarthat néhány percig. Az üzembe helyezés végeztével lépjen tovább a következő szakaszra.

Megjegyzés

Az Azure egy olyan Azure Virtual Machines IP-címet biztosít, amelyhez nincs nyilvános IP-cím rendelve, vagy amelyek egy belső Alapszintű ip-cím háttérkészletében Azure Load Balancer. Aphemeral IP-mechanizmus nem konfigurálható kimenő IP-címet biztosít.

A nyilvános IP-cím le van tiltva, ha egy nyilvános IP-címet rendelnek a virtuális géphez, vagy ha a virtuális gép egy virtuális gép háttérkészletében van standard Load Balancer vagy anélkül. Ha egy Azure Virtual Network NAT-erőforrás hozzá van rendelve a virtuális gép alhálózata számára, a rendszer letiltja a rendszer a kis időkorlátú IP-címet.

További információ az Azure kimenő kapcsolatairól: Forráshálózati címfordítás (SNAT) használata kimenő kapcsolatokhoz.

Kapcsolódás a virtuális géphez

Hozzon létre egy SSH-kapcsolatot a virtuális géppel a nyilvános IP-cím alapján. A virtuális gép nyilvános IP-címének a Get-AzPublicIpAddress parancsmag használatával használhatja:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select "IpAddress"

Az SSH-kulcspár létrehozásához használt rendszerhéj használatával illessze be a következő parancsot a rendszerhéjba egy SSH-munkamenet létrehozásához. Cserélje le a 10.111.12.123 címet a virtuális gép IP-címére.

ssh azureuser@10.111.12.123

Ha a rendszer kéri, adja meg a következő bejelentkezési felhasználónevet: azureuser. Ha jelszót használ az SSH-kulcsokkal, akkor azt a rendszer kérésére meg kell adnia.

Az NGINX telepítése

A virtuális gép működésének ellenőrzéséhez telepítse az NGINX-webkiszolgálót. Frissítse a csomag forrásait, majd telepítse a legújabb NGINX-csomagot az SSH-munkamenetből.

sudo apt-get -y update
sudo apt-get -y install nginx

Ha elkészült, az SSH-munkamenetből való kilépéshez írja be: exit.

A webkiszolgáló működésének ellenőrzése

Egy tetszőleges webböngészővel tekintse meg az alapértelmezett NGINX-kezdőlapot. Webcímként adja meg a virtuális gép nyilvános IP-címét. A nyilvános IP-cím a virtuális gép áttekintő oldalán található, vagy a korábban használt SSH-kapcsolati sztring részeként.

Alapértelmezett NGINX kezdőlap

Az erőforrások eltávolítása

Ha már nincs rá szükség, a Remove-AzResourceGroup parancsmaggal eltávolíthatja az erőforráscsoportot, a virtuális gépet és az összes kapcsolódó erőforrást:

Remove-AzResourceGroup -Name "myResourceGroup"

Következő lépések

Ebben a rövid útmutatóban üzembe helyezett egy egyszerű virtuális gépet, létrehozott egy hálózati biztonsági csoportot és szabályt, valamint telepített egy alapszintű webkiszolgálót. Ha bővebb információra van szüksége az Azure-beli virtuális gépekkel kapcsolatban, lépjen tovább a Linux rendszerű virtuális gépekről szóló oktatóanyagra.