Applicazione Web Ruby on Rails in una macchina virtuale di AzureRuby on Rails Web application on an Azure VM

Questa esercitazione mostra come ospitare un sito Web Ruby on Rails usando una macchina virtuale Linux.This tutorial shows how to host a Ruby on Rails website on Azure using a Linux virtual machine.

Questa esercitazione è stata convalidata usando Ubuntu Server 14.04 LTS.This tutorial was validated using Ubuntu Server 14.04 LTS. Se si usa una distribuzione Linux diversa, è necessario modificare la procedura per installare Rails.If you use a different Linux distribution, you might need to modify the steps to install Rails.

Importante

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. Questo articolo illustra l'uso del modello di distribuzione classica.This article covers using the classic deployment model. Microsoft consiglia di usare il modello di Gestione risorse per le distribuzioni più recenti.Microsoft recommends that most new deployments use the Resource Manager model.

A partire dal 15 novembre 2017, le macchine virtuali saranno disponibili solo nel portale di Azure.Starting November 15, 2017, Virtual Machines will be available only in the Azure portal. L'accesso dal portale classico non sarà più supportato.Access from the classic portal will no longer be supported.

Creare una macchina virtuale di AzureCreate an Azure VM

Iniziare creando una macchina virtuale di Azure con un'immagine Linux.Start by creating an Azure VM with a Linux image.

Per creare la VM, è possibile usare il portale di Azure o l'interfaccia della riga di comando (CLI) di Azure.To create the VM, you can use the Azure portal or the Azure Command-Line Interface (CLI).

Portale di AzureAzure portal

  1. Accedere al portale di AzureSign into the Azure portal
  2. Fare clic su Nuovo, quindi digitare "Ubuntu Server 14.04" nella casella di ricerca.Click New, then type "Ubuntu Server 14.04" in the search box. Fare clic sulla voce restituita dalla ricerca.Click the entry returned by the search. Come modello di distribuzione selezionare Classico, quindi fare clic su "Crea".For the deployment model, select Classic, then click "Create".
  3. Nel pannello Informazioni di base immettere i valori per i campi obbligatori: nome (per la VM), nome utente, tipo di autenticazione e le credenziali corrispondenti, sottoscrizione di Azure, gruppo di risorse e località.In the Basics blade, supply values for the required fields: Name (for the VM), User name, Authentication type and the corresponding credentials, Azure subscription, Resource group, and Location.

    Creare una nuova immagine Ubuntu

  4. Dopo il provisioning della macchina virtuale, fare clic sul nome della macchina virtuale e quindi fare clic su Endpoint nella categoria Impostazioni.After the VM is provisioned, click on the VM name, and click Endpoints in the Settings category. Trovare l'endpoint SSH, elencato in Autonomo.Find the SSH endpoint, listed under Standalone.

    Endpoint predefinito

Interfaccia della riga di comando di AzureAzure CLI

Seguire i passaggi in Creazione rapida di una macchina virtuale che esegue Linux.Follow the steps in Create a Virtual Machine Running Linux.

Al termine del provisioning della macchina virtuale, è possibile ottenere l'endpoint SSH eseguendo il comando seguente:After the VM is provisioned, you can get the SSH endpoint by running the following command:

azure vm endpoint list <vm-name>  

Installare Ruby on RailsInstall Ruby on Rails

  1. Usare SSH per connettersi alla macchina virtuale.Use SSH to connect to the VM.
  2. Dalla sessione SSH usare i comandi seguenti per installare Ruby nella macchina virtuale:From the SSH session, use the following commands to install Ruby on the VM:

     sudo apt-get update -y
     sudo apt-get upgrade -y
    
     sudo apt-add-repository ppa:brightbox/ruby-ng
     sudo apt-get update
     sudo apt-get install ruby2.4
    
     > [!TIP]
     > The brightbox repository contains the current Ruby distribution.
    

    L'installazione potrebbe richiedere alcuni minuti.The installation may take a few minutes. Al termine, immettere il comando seguente per verificare se l'installazione di Ruby è stata completata:When it completes, use the following command to verify that Ruby is installed:

     ruby -v
    
  3. Immettere il comando seguente per installare Rails:Use the following command to install Rails:

     sudo gem install rails --no-rdoc --no-ri -V
    

    Per velocizzare l'operazione, usare i flag --no-rdoc e --no-ri per ignorare l'installazione della documentazione.Use the --no-rdoc and --no-ri flags to skip installing the documentation, which is faster. È probabile che l'esecuzione di questo comando richieda tempo, quindi l'aggiunta di -V consentirà di visualizzare lo stato dell'installazione.This command will likely take a long time to execute, so adding the -V will display information about the installation progress.

Creare ed eseguire un'applicazioneCreate and run an app

Mentre si è ancora connessi con SSH, eseguire i comandi seguenti:While still logged in via SSH, run the following commands:

rails new myapp
cd myapp
rails server -b 0.0.0.0 -p 3000

Il comando new crea una nuova app Rails.The new command creates a new Rails app. Il comando server avvia il server Web WEBrick fornito con Rails.The server command starts the WEBrick web server that comes with Rails. (per l'uso in un ambiente di produzione sarà opportuno usare un server differente, ad esempio Unicorn o Passenger).(For production use, you would probably want to use a different server, such as Unicorn or Passenger.)

L'output dovrebbe essere simile al seguente.You should see output similar to the following.

=> Booting WEBrick
=> Rails 4.2.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2015-06-09 23:34:23] INFO  WEBrick 1.3.1
[2015-06-09 23:34:23] INFO  ruby 1.9.3 (2013-11-22) [x86_64-linux]
[2015-06-09 23:34:23] INFO  WEBrick::HTTPServer#start: pid=27766 port=3000

Aggiungere un endpointAdd an endpoint

  1. Andare al [portale di Azure][https://portal.azure.com] e selezionare la VM.Go to the [Azure portal][https://portal.azure.com] and select your VM.

  2. Selezionare ENDPOINT in Impostazioni sul lato sinistro della pagina.Select ENDPOINTS in the Settings along the left edge the page.

  3. Nella parte superiore della pagina fare clic su AGGIUNGI.Click ADD at the top of the page.

  4. Nella finestra di dialogo Aggiungi endpoint immettere le informazioni seguenti:In the Add endpoint dialog page, enter the following information:

    • Nome: HTTPName: HTTP
    • Protocollo: TCPProtocol: TCP
    • Porta pubblica: 80Public port: 80
    • Porta privata: 3000Private port: 3000
    • Indirizzo IP mobile: DisabilitatoFloating PI address: Disabled
    • Elenco di controllo di accesso - Ordine: 1001 o un altro valore che imposta la priorità di questa regola di accesso.Access control list - Order: 1001, or another value that sets the priority of this access rule.
    • Elenco di controllo di accesso - Nome: allowHTTPAccess control list - Name: allowHTTP
    • Elenco di controllo di accesso - Azione: consentiAccess control list - Action: permit
    • Elenco di controllo di accesso - Subnet remota: 1.0.0.0/16Access control list - Remote subnet: 1.0.0.0/16

      Questo endpoint ha una porta pubblica 80 che instraderà il traffico alla porta privata 3000, dove è in ascolto il server Rails.This endpoint has a public port of 80 that will route traffic to the private port of 3000, where the Rails server is listening. La regola dell'elenco di controllo di accesso consente il traffico pubblico sulla porta 80.The access control list rule allows public traffic on port 80.

      new-endpoint

  5. Fare clic su OK per salvare l'endpoint.Click OK to save the endpoint.

  6. Verrà visualizzato il messaggio Salvataggio dell'endpoint della macchina virtuale.A message should appear that states Saving virtual machine endpoint. Quando questo messaggio scompare, significa che l'endpoint è attivo.Once this message disappears, the endpoint is active. A questo punto è possibile testare l'applicazione passando al nome DNS della macchina virtuale.You may now test your application by navigating to the DNS name of your virtual machine. L'aspetto del sito Web dovrebbe essere simile al seguente:The website should appear similar to the following:

    Pagina predefinita Rails

Passaggi successiviNext steps

In questa esercitazione è stata eseguita la maggior parte dei passaggi manualmente.In this tutorial, you did most of the steps manually. In un ambiente di produzione, si potrebbe scrivere l'applicazione in un computer di sviluppo e distribuirla nella macchina virtuale di Azure.In a production environment, you would write your app on a development machine and deploy it to the Azure VM. Inoltre, la maggior parte degli ambienti di produzione ospita l'applicazione Rails insieme a un altro processo server, ad esempio Apache o NginX, che gestisce il routing delle richieste a più istanze dell'applicazione Rails e la distribuzione di risorse statiche.Also, most production environments host the Rails application in conjunction with another server process such as Apache or NginX, which handles request routing to multiple instances of the Rails application and serving static resources. Per altre informazioni, vedere http://rubyonrails.org/deploy/.For more information, see http://rubyonrails.org/deploy/.

Per altre informazioni su Ruby on Rails, vedere le Guide di Ruby on Rails.To learn more about Ruby on Rails, visit the Ruby on Rails Guides.

Per usare servizi di Azure dall'applicazione Ruby, vedere:To use Azure services from your Ruby application, see: