Distribuire un'app Web Python in una macchina virtuale in hub di Azure Stack

È possibile creare una macchina virtuale per ospitare l'app Web Python in hub di Azure Stack. In questo articolo si configura un server, si configura il server per ospitare l'app Web Python e quindi si distribuisce l'app hub di Azure Stack.

Questo articolo usa Python 3.x che esegue Flask in un ambiente virtuale in un server Nginx. Usare Ubuntu Server 18.04 LTS da hub di Azure Stack Marketplace.

Creare una macchina virtuale

  1. Configurare la macchina virtuale in hub di Azure Stack seguendo le istruzioni in Distribuire una macchina virtuale Linux per ospitare un'app Web in hub di Azure Stack. Usare Ubuntu Server 18.04 LTS da hub di Azure Stack Marketplace.

  2. Nel riquadro Rete VM assicurarsi che le porte seguenti siano accessibili:

    Porta Protocollo Descrizione
    80 HTTP Hypertext Transfer Protocol (HTTP) è il protocollo usato per recapitare pagine Web dai server. I client si connettono tramite HTTP con un nome DNS o un indirizzo IP.
    443 HTTPS Hypertext Transfer Protocol Secure (HTTPS) è una versione sicura di HTTP che richiede un certificato di sicurezza e consente la trasmissione crittografata delle informazioni.
    22 SSH Secure Shell (SSH) è un protocollo di rete crittografato per le comunicazioni protette. Usare questa connessione con un client SSH per configurare la macchina virtuale e distribuire l'app.
    3389 RDP facoltativo. Il Remote Desktop Protocol (RDP) consente a una connessione desktop remoto di usare un'interfaccia utente grafica nel computer.
    5000, 8000 Personalizzato Porte usate dal framework Web Flask in fase di sviluppo. Per un server di produzione, il traffico viene instradato attraverso 80 e 443.
  3. Nel riquadro Panoramica selezionare Configura in Nome DNS.

  4. Selezionare statico e quindi assegnare un nome al computer in modo da avere un nome DNS, ad esempio: .

Installare Python

  1. Connessione alla macchina virtuale usando il client SSH. Per istruzioni, vedere Connessione tramite SSH con PuTTy.

  2. Al prompt bash nella macchina virtuale immettere il comando seguente:

    sudo apt-get update
    sudo apt-get -y install python3 python3-dev
    sudo apt install python3-pip
    
  3. Convalidare l'installazione. Mentre si è ancora connessi alla macchina virtuale nella sessione SSH, immettere il comando seguente per aprire Python e prendere nota del numero di versione. Digitare quindi quit() per uscire da Python REPL.

    python3
    quit()
    
  4. Installare Nginx, un server Web leggero. Mentre si è ancora connessi alla macchina virtuale nella sessione SSH, immettere il comando seguente:

    sudo apt-get -y install nginx
    
  5. Installare Git, un sistema di gestione del codice sorgente e controllo della versione ampiamente distribuito. Mentre si è ancora connessi alla macchina virtuale nella sessione SSH, immettere il comando seguente:

    sudo apt-get -y install git
    

Distribuire ed eseguire l'app

  1. Configurare il repository Git nella macchina virtuale. Mentre si è ancora connessi alla macchina virtuale nella sessione SSH, immettere i comandi seguenti:

       git clone https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world.git
    
       cd azure-stack-hub-flask-hello-world
    
  2. Mentre si è ancora connessi alla macchina virtuale nella sessione SSH, immettere i comandi seguenti per installare le dipendenze. Installare Flask usando apt e quindi pip per caricare i moduli da 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. Passare al nuovo server. Verrà visualizzata l'applicazione Web in esecuzione.

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

Aggiornare il server

  1. Connessione alla macchina virtuale nella sessione SSH. Arrestare il server digitando CTRL+C.

  2. Immettere i comandi seguenti:

    cd azure-stack-hub-flask-hello-world
    git pull
    
  3. Attivare l'ambiente virtuale e avviare l'app:

    export FLASK_APP=application.py
    flask run -h 0.0.0.0
    

Passaggi successivi