Condividi tramite


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

È possibile creare una macchina virtuale per ospitare l'app Web Python nell'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 nell'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 dal Marketplace di Azure Stack Hub.

Creare una macchina virtuale

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

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

    Porto Protocollo Descrizione
    80 HTTP Hypertext Transfer Protocol (HTTP) è il protocollo usato per distribuire 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 di informazioni.
    22 SSH Secure Shell (SSH) è un protocollo di rete crittografato per comunicazioni sicure. Questa connessione viene usata con un client SSH per configurare la macchina virtuale e distribuire l'app.
    3389 RDP Opzionale. 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, indirizzare il traffico a 80 e 443.
  3. Nel riquadro Panoramica, selezionare configurare sotto Nome DNS.

  4. Selezionare statico e assegnare al computer un nome DNS, ad esempio: <yourmachine>.<local>.cloudapp.azurestack.contoso.com.

Installare Python

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

  2. Al prompt di 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. 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 dapprima apt e poi 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. Connettersi 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