Övning – Skapa en virtuell värddator för ditt webbprogram
Precis som de flesta programramverk kan du köra ditt MEAN-stackprogram i många olika miljöer. Du kan köra programmet på en fysisk dator i ditt serverutrymme, på en virtuell dator eller i containrar.
Här kör du ditt program på en virtuell dator (VM) som körs på Azure. MEAN stöder många olika operativsystem. I utbildningssyfte använder vi Ubuntu Linux här.
Kommentar
Den här övningen är valfri. Om du vill slutföra den här övningen måste du skapa en Azure-prenumeration innan du börjar. Om du inte har något Azure-konto eller om du inte vill skapa ett för tillfället kan du läsa igenom anvisningarna så att du förstår den information som visas.
Kommentar
Du måste använda en resursgrupp för att slutföra stegen i den här övningen. Du kan använda en resursgrupp som du redan har skapat eller skapa en ny resursgrupp specifikt för den här övningen. Om du väljer att skapa en ny resursgrupp blir det enklare att rensa alla resurser som du skapar när du slutför övningen. Om du inte har någon befintlig resursgrupp eller om du vill skapa en ny specifikt för den här övningen kan du följa stegen i Använda Azure-portalen och Azure Resource Manager för att hantera resursgrupper för att skapa en resursgrupp med hjälp av Azure-portalen, eller så kan du följa stegen i Hantera Azure-resursgrupper med hjälp av Azure CLI för att skapa en resursgrupp med hjälp av Azure CLI.
Skapa en virtuell Ubuntu Linux-dator
Normalt skapar du en resursgrupp innan du skapar andra resurser i Azure. En resursgrupp är en container som förvarar de resurser som relaterar till en Azure-lösning. Om du inte redan har skapat en resursgrupp kan du köra följande kommando för att skapa en resursgrupp på en plats nära dig.
az group create \
--name <resource-group-name> \
--location <resource-group-location>
Öppna Azure Cloud Shell och välj sedan Inställningar>Gå till klassisk version.
Kör kommandot från
az vm createCloud Shell för att skapa en virtuell Ubuntu-dator. Ersätt myResourceGroupName i följande exempel med namnet på en befintlig resursgrupp eller namnet på den resursgrupp som du skapade för den här övningen.az vm create \ --resource-group "myResourceGroupName" \ --name MeanStack \ --image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest \ --admin-username azureuser \ --generate-ssh-keysKommandot tar ungefär två minuter att köra. När kommandot är klart visas utdata som liknar det här exemplet:
(Output Example) { "fqdns": "", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/MeanStack", "location": "eastus", "macAddress": "00-0D-3A-1E-1B-3B", "powerState": "VM running", "privateIpAddress": "10.0.0.5", "publicIpAddress": "104.211.9.245", "resourceGroup": "myResourceGroupName", "zones": "" }Den virtuella datorns namn är MeanStack. Du ska använda det här namnet i kommandon längre fram för att identifiera den virtuella datorn som du vill arbeta med.
Öppna port 80 på den virtuella datorn för att tillåta inkommande HTTP-trafik till webbprogrammet som du skapar senare.
az vm open-port \ --port 80 \ --resource-group "myResourceGroupName" \ --name MeanStackSkapa en SSH-anslutning till den virtuella datorn.
Även om utdata från
az vm createkommandot visar den virtuella datorns offentliga IP-adress kan det vara användbart att lagra adressen i en Bash-variabel.Börja genom att köra
az vm show. Det här kommandot sparar IP-adressen i Bash-variabelnipaddress.ipaddress=$(az vm show \ --name MeanStack \ --resource-group "myResourceGroupName" \ --show-details \ --query [publicIps] \ --output tsv)Anslut till den virtuella datorn så här.
ssh azureuser@$ipaddressNär du uppmanas till det anger du ja för att spara den virtuella datorns identitet lokalt så att framtida anslutningar är betrodda.
Du använder SSH-anslutningen till att konfigurera programvara på den virtuella datorn i kommande avsnitt.
Sammanfattning
Nu när den virtuella Ubuntu-datorn är klar kan du gå vidare och installera komponenterna i MEAN-stacken. Du börjar med att installera MongoDB.