연습 - Azure Virtual Machine 만들기 - Training

사전준비

Azure cli 설치

VM 만들기

az vm create \
  --resource-group <resource group name> \
  --name my-vm \
  --image UbuntuLTS \
  --admin-username azureuser \
  --generate-ssh-keys

VM에 Nginx 설치

az vm extension set \
  --resource-group <resource group name> \
  --vm-name my-vm \
  --name customScript \
  --publisher Microsoft.Azure.Extensions \
  --version 2.1 \
  --settings '{"fileUris":["<https://raw.githubusercontent.com/MicrosoftDocs/mslearn-welcome-to-azure/master/configure-nginx.sh>"]}' \
  --protected-settings '{"commandToExecute": "./configure-nginx.sh"}'

위 명령어에 있는 configure-nginx.sh 는 이렇게 생겼다.

#!/bin/bash

# Update apt cache.
sudo apt-get update

# Install Nginx.
sudo apt-get install -y nginx

# Set the home page.
echo "<html><body><h2>Welcome to Azure! My name is $(hostname).</h2></body></html>" | sudo tee -a /var/www/html/index.html

웹 서버 액세스

위에서 만든 VM의 IP 주소를 가져오기

az vm list-ip-addresses 명령을 실행하여 VM의 IP 주소를 가져오고 결과를 Bash 변수로 저장한다.

IPADDRESS="$(az vm list-ip-addresses \
  --resource-group <resource group name> \
  --name my-vm \
  --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
  --output tsv)"

curl 명령을 실행하여 홈페이지를 다운로드해본다. 현재는 VM에 액세스할 수 없다. 포트 80에서 인바운드 HTTP 액세스를 허용하여 이를 변경하는 네트워크 보안 그룹을 만들어야 한다.

curl --connect-timeout 5 <http://$IPADDRESS>

IP를 확인 후 복사하여 브라우저에 붙여넣기 한다. 당연히 접속이 안된다.