Развертывание веб-приложения Python на виртуальной машине в Azure Stack Hub

Вы можете создать виртуальную машину для размещения веб-приложения Python в Azure Stack Hub. В этой статье объясняется, как настроить сервер для размещения веб-приложения Python, которое затем будет развернуто в Azure Stack Hub.

В рамках этой статьи для запуска Flask в виртуальной среде на сервере Nginx используется Python 3.x. Используйте Ubuntu Server 18.04 LTS из Azure Stack Hub Marketplace.

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

  1. Настройте виртуальную машину в Azure Stack Hub, следуя инструкциям из статьи о развертывании виртуальной машины Linux для размещения веб-приложения в Azure Stack Hub. Используйте Ubuntu Server 18.04 LTS из Azure Stack Hub Marketplace.

  2. В области сети виртуальных машин разрешите доступ к следующим портам:

    Порт Протокол Описание
    80 HTTP HTTP — это протокол, который используется для доставки веб-страниц с серверов. Клиенты подключаются по протоколу HTTP, используя DNS-имя или IP-адрес.
    443 HTTPS HTTPS — это безопасная версия протокола HTTP, которая использует сертификат безопасности и обеспечивает передачу данных в зашифрованном виде.
    22 SSH Secure Shell (SSH) — это сетевой протокол с применением шифрования для безопасного обмена данными. Такое соединение используется клиентом SSH для настройки виртуальной машины и развертывания приложений.
    3389 RDP Необязательный параметр. Протокол RDP позволяет подключаться к удаленному рабочему столу, чтобы использовать графический пользовательский интерфейс на вашем компьютере.
    5000, 8000 Особые настройки Порты, которые используются веб-платформой Flask при разработке. Для рабочего сервера разработки вам нужно перенаправить трафик через порты 80 и 443.
  3. В области Обзор выберите настроить в разделе DNS-имя.

  4. Выберите статический , а затем присвойте компьютеру имя, чтобы у вас было DNS-имя, например : <yourmachine>.<local>.cloudapp.azurestack.contoso.com.

Установка Python

  1. Подключитесь к виртуальной машине c помощью клиента SSH. Инструкции см . в статье Подключение по протоколу SSH с помощью PuTTy.

  2. В командной строке bash на виртуальной машине введите следующую команду:

    sudo apt-get update
    sudo apt-get -y install python3 python3-dev
    sudo apt install python3-pip
    
  3. Проверьте установку. Пока вы все еще подключены к виртуальной машине в сеансе SSH, введите следующую команду, чтобы открыть Python, и запишите номер версии. Затем введите quit() , чтобы выйти из Python REPL.

    python3
    quit()
    
  4. Установите Nginx, упрощенную версию веб-сервера. Не прерывая подключение к виртуальной машине в сеансе SSH, введите следующую команду:

    sudo apt-get -y install nginx
    
  5. Установите Git — широко распространенную систему управления версиями и исходным кодом. Не прерывая подключение к виртуальной машине в сеансе SSH, введите следующую команду:

    sudo apt-get -y install git
    

Развертывание и запуск приложения

  1. Настройте репозиторий Git на виртуальной машине. Не прерывая подключение к виртуальной машине в сеансе SSH, введите следующие команды:

       git clone https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world.git
    
       cd azure-stack-hub-flask-hello-world
    
  2. Пока вы по-прежнему подключены к виртуальной машине в сеансе SSH, введите следующие команды, чтобы установить зависимости. Установите Flask с помощью apt, а затем pip для загрузки модулей из requirements.txt.

    sudo apt install python3-flask
    pip3 install -r requirements.txt
    
    export FLASK_APP=application.py
    flask run -h 0.0.0.0
    
  3. Перейдите на новый сервер. Вы увидите запущенное веб-приложение.

    <yourmachine>.<local>.cloudapp.azurestack.contoso.com:5000
    

Обновление сервера

  1. Подключитесь к своей виртуальной машине в сеансе SSH. Остановите работу сервера, нажав комбинацию клавиш CTRL+C.

  2. Введите следующие команды:

    cd azure-stack-hub-flask-hello-world
    git pull
    
  3. Активируйте виртуальную среду и запустите приложение.

    export FLASK_APP=application.py
    flask run -h 0.0.0.0
    

Дальнейшие действия

  • См. дополнительные сведения о разработке для Azure Stack Hub.
  • Дополнительные сведения о распространенных сценариях развертывания IaaS для Azure Stack Hub см. здесь.
  • Дополнительные сведения о языке программирования Python и дополнительные ресурсы см. на сайте Python.org.