Application Web Ruby on Rails sur une machine virtuelle Azure

Important

Les machines virtuelles classiques seront mises hors service le 1er mars 2023.

Si vous utilisez des ressources IaaS provenant d’ASM, veuillez terminez votre migration avant le 1er mars 2023. Nous vous encourageons à effectuer le basculement plus tôt plus pour tirer parti des nombreuses fonctionnalités améliorées d’Azure Resource Manager.

Pour plus d’informations, consultez Migrez vos ressources IaaS vers Azure Resource Manager avant le 1er mars 2023.

Ce didacticiel explique comment héberger un site web Ruby on Rails sur Azure à l'aide d'une machine virtuelle Linux.

Ce didacticiel a été validé à l’aide d’Ubuntu Server 14.04 LTS. Si vous utilisez une distribution Linux différente, vous devrez peut-être modifier les étapes pour installer Rails.

Notes

Azure a deux modèles de déploiement différents pour créer et utiliser des ressources : Resource Manager et classique. Cet article traite du modèle de déploiement classique. Pour la plupart des nouveaux déploiements, Microsoft recommande d’utiliser le modèle Resource Manager.

À compter du 15 novembre 2017, les machines virtuelles seront disponibles uniquement dans le Portail Azure.

Création d’une machine virtuelle Azure

Commencez par créer une machine virtuelle Azure avec une image Linux.

Pour créer la machine virtuelle, vous pouvez utiliser le portail Azure ou l’interface de ligne de commande (CLI) Azure.

Portail Azure

  1. Connectez-vous au portail Azure.

  2. Cliquez sur Créer une ressource, puis tapez « Ubuntu Server 14.04 » dans la zone de recherche. Cliquez sur l’entrée renvoyée par la recherche. Pour le déploiement du modèle, sélectionnez Classique, puis cliquez sur « Créer ».

  3. Dans le panneau des éléments de base, saisissez des valeurs pour les champs requis : nom (de la machine virtuelle), nom d’utilisateur, type d’authentification et les informations d’identification correspondantes, abonnement Azure, groupe de ressources et emplacement.

    Create a new Ubuntu Image

  4. Une fois que la machine virtuelle est configurée, cliquez sur son nom, puis cliquez sur Points de terminaison dans la catégorie Paramètres. Recherchez le point de terminaison SSH répertorié sous Autonome.

    Point de terminaison par défaut

Azure CLI

Suivez les étapes de Create a Virtual Machine Running Linux (Création d’une machine virtuelle exécutant Linux).

Une fois que la machine virtuelle est configurée, vous pouvez obtenir le point de terminaison SSH en exécutant la commande suivante :

azure vm endpoint list <vm-name>  

installation de Ruby sur Rails

  1. Utilisez le protocole SSH pour vous connecter à la machine virtuelle.

  2. Depuis la session SSH, utilisez les commandes suivantes pour installer Ruby sur la machine virtuelle :

     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’installation peut prendre quelques minutes. Lorsqu’elle est terminée, utilisez la commande suivante pour vérifier que Ruby est installé :

     ruby -v
    
  3. Utilisez la commande suivante pour installer Rails :

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

    Utilisez les indicateurs --no-rdoc et--no-ri pour ignorer l’installation de la documentation, ce qui est plus rapide. L’exécution de cette commande peut être très longue ; l’ajout de -V permet d’afficher des informations sur la progression de l’installation.

Création et exécution d’une application

Alors que vous êtes toujours connecté via SSH, exécutez les commandes suivantes :

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

La nouvelle commande crée une nouvelle application Rails. La commande server démarre le serveur web WEBrick qui est fourni avec Rails. (À des fins de production, vous souhaiterez probablement utiliser un autre serveur, par exemple Unicorn ou Passenger.)

Vous devez voir une sortie semblable à la suivante.

=> 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

Ajout d’un point de terminaison

  1. Accédez au [portail Azure][https://portal.azure.com] et sélectionnez votre machine virtuelle.

  2. Sélectionnez Points de terminaison dans les Paramètres sur le bord gauche de la page.

  3. Cliquez sur Ajouter en haut de la page.

  4. Dans la boîte de dialogue Ajouter point de terminaison, entrez les informations suivantes :

    • Nom : HTTP

    • Protocole : TCP

    • Port public : 80

    • Port privé : 3000

    • Adresse PI flottante : Désactivée

    • Liste de contrôle d’accès - ordre : 1001, ou une autre valeur qui viendra définir la priorité de cette règle d’accès.

    • Liste de contrôle d’accès - nom : allowHTTP

    • Liste de contrôle d’accès - Action : autoriser

    • Liste de contrôle d’accès - sous-réseau distant : 1.0.0.0/16

      Ce point de terminaison a un port public de 80 qui acheminera le trafic vers le port privé de 3000, où le serveur Rails écoute. La règle de la liste de contrôle de l’accès permet un trafic public sur le port 80.

      new-endpoint

  5. Cliquez sur OK pour enregistrer le point de terminaison.

  6. Un message doit apparaître indiquant Enregistrement du point de terminaison de la machine virtuelle. Une fois que ce message disparaît, le point de terminaison est actif. Vous pouvez désormais tester votre application en accédant au nom DNS de votre machine virtuelle. Le site web qui apparaît doit être semblable à l'illustration ci-dessous :

    page rails par défaut

Étapes suivantes

Dans ce didacticiel, vous avez effectué la plupart des étapes manuellement. Dans un environnement de production, vous écririez votre application sur un ordinateur de développement et la déploieriez sur la machine virtuelle Azure. En outre, la plupart des environnements de production hébergent l'application Rails en association avec un autre processus serveur tel que Apache ou NginX, qui traite l'acheminement des requêtes vers plusieurs instances de l'application Rails et l'envoi des ressources statiques. Pour plus d’informations, consultez http://guides.rubyonrails.org/routing.html.

Pour en savoir plus sur Ruby on Rails, consultez les guides Ruby on Rails.

Pour utiliser des services Azure depuis votre application Ruby, consultez :