Краткое руководство. Создание виртуальной машины сервера Linux с помощью Azure CLI в Azure Stack Hub

Виртуальная машина LTS (виртуальная машина) Ubuntu Server 20.04 можно создать с помощью Azure CLI. В этой статье описано, как создать и использовать виртуальную машину. Здесь также объясняется, как выполнить следующие задачи:

  • подключиться к виртуальной машине через удаленный клиент;
  • установить веб-сервер NGINX и открыть его стандартную домашнюю страницу;
  • очистить неиспользуемые ресурсы.

Необходимые компоненты

Перед началом работы убедитесь, что у вас есть следующие предварительные требования:

  • Образ Linux в Azure Stack Hub Marketplace.

    По умолчанию Azure Stack Hub Marketplace не содержит образ Linux. Укажите оператор Azure Stack Hub для образа Ubuntu Server 20.04 LTS. Для этого оператор может выполнить инструкции из статьи Скачивание элементов Marketplace из Azure в Azure Stack Hub.

  • Для создания ресурсов и управления ими Azure Stack Hub требуется определенная версия Azure CLI. Если у вас нет Azure CLI, настроенного для Azure Stack Hub, войдите в внешний клиент под управлением Windows, если вы подключены через VPN, и следуйте инструкциям по установке и настройке Azure CLI.

  • Открытый ключ SSH с именем id_rsa.pub сохраняется в каталоге (с расширением .ssh) вашего профиля пользователя Windows. Дополнительные сведения о создании ключей SSH см. в статье "Использование пары ключей SSH" с Azure Stack Hub.

Создание или изменение группы ресурсов

Группа ресурсов — это логический контейнер, в котором вы можете развертывать ресурсы Azure Stack Hub и управлять ими. В интегрированной системе Azure Stack Hub выполните команду az group create , чтобы создать группу ресурсов.

Примечание.

Мы назначили значения для всех переменных в следующих примерах кода. Но вы можете присвоить собственные значения.

В следующем примере создается группа ресурсов с именем myResourceGroup со случайным суффиксом в локальном расположении:

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export LOCATION="eastus2"
az group create --name $RESOURCE_GROUP --location $LOCATION

Результаты:

{
  "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx",
  "location": "local",
  "managedBy": null,
  "name": "myResourceGroupxxx",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

Создание виртуальной машины

Создайте виртуальную машину с помощью команды az vm create. В следующем примере создаются виртуальная машина с именем myVM В этом примере используется Demouser имя пользователя администратора. Укажите вместо них значения, подходящие для вашей среды.

export VM_NAME="myVM$RANDOM_SUFFIX"
az vm create \
  --resource-group $RESOURCE_GROUP \
  --name $VM_NAME \
  --image "Ubuntu2204" \
  --admin-username "azureuser" \
  --assign-identity \
  --generate-ssh-keys \
  --public-ip-sku Standard \
  --location $LOCATION

Результаты:

{
  "fqdns": "",
  "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.Compute/virtualMachines/myVMxxx",
  "location": "local",
  "name": "myVMxxx",
  "osProfile": {
    "computerName": "myVMxxx",
    "adminUsername": "Demouser"
  },
  "publicIpAddress": "x.x.x.x",
  "powerState": "VM running",
  "provisioningState": "Succeeded"
}

Общедоступный IP-адрес возвращается в параметре PublicIpAddress . Запишите адрес для дальнейшего использования при работе с виртуальной машиной.

Открытие порта 80 для веб-трафика

Так как эта виртуальная машина запускает веб-сервер IIS, необходимо открыть порт 80 в интернет-трафик. Чтобы открыть порт, используйте команду az vm open-port.

az vm open-port --port 80 --resource-group $RESOURCE_GROUP --name $VM_NAME

Результаты:

{
  "endPort": 80,
  "name": "openPort80",
  "port": 80,
  "protocol": "Tcp",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroupxxx",
  "startPort": 80
}

Используйте SSH для подключения к виртуальной машине.

Подключитесь к виртуальной машине с клиентского компьютера, на котором установлен протокол SSH. При работе с клиентом Windows используйте PuTTY для создания подключения. Чтобы подключиться к виртуальной машине, можно использовать ssh команду.

Установка веб-сервера NGINX

Чтобы обновить источники пакетов и установить последнюю версию пакета NGINX, выполните следующий скрипт:

output=$(az vm run-command invoke --resource-group $RESOURCE_GROUP --name $VM_NAME --command-id RunShellScript --scripts 'apt-get -y install nginx')
value=$(echo "$output" | jq -r '.value[0].message')
extracted=$(echo "$value" | awk '/[stdout]/,/[stderr]/' | sed '/[stdout]/d' | sed '/[stderr]/d')
echo "$extracted"

Просмотр страницы приветствия nginx

Теперь на виртуальной машине установлен веб-сервер NGINX и открыт порт 80, и вы можете обращаться к веб-серверу по общедоступному IP-адресу этой виртуальной машины. Для этого откройте браузер и перейдите на страницу http://<public IP address>. Кроме того, можно использовать команду curl для просмотра страницы приветствия NGINX:

export PUBLIC_IP=$(az vm show -d -g $RESOURCE_GROUP -n $VM_NAME --query publicIps -o tsv)

output=$(az vm run-command invoke --resource-group $RESOURCE_GROUP --name $VM_NAME --command-id RunShellScript --scripts 'curl -v http://localhost')
value=$(echo "$output" | jq -r '.value[0].message')
extracted=$(echo "$value" | awk '/[stdout]/,/[stderr]/' | sed '/[stdout]/d' | sed '/[stderr]/d')
echo "$extracted"

Результаты:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
  body {
    width: 35em;
    margin: 0 auto;
    font-family: Tahoma, Verdana, Arial, sans-serif;
  }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

Страница приветствия веб-сервера NGINX

Следующие шаги

С помощью этого краткого руководства вы развернули простую виртуальную машину с сервером Linux и веб-сервером. Дополнительные сведения о виртуальных машинах Azure Stack Hub см. в этих рекомендациях.