3.5. Création d’applications à l’aide de Ruby on Rails


Le Ruby on Rails est un framework web écrit en Ruby. Ce guide couvre l’utilisation de Rails 4 sur Red Hat OpenShift Service sur AWS.

Avertissement

Consultez l’ensemble du tutoriel pour avoir une vue d’ensemble de toutes les étapes nécessaires pour exécuter votre application sur le Service OpenShift Red Hat sur AWS. Lorsque vous rencontrez un problème, essayez de lire l’ensemble du tutoriel, puis retournez à votre problème. Il peut également être utile de revoir vos étapes précédentes pour vous assurer que toutes les étapes ont été exécutées correctement.

3.5.1. Conditions préalables

  • Connaissances de base Ruby et Rails.
  • La version installée localement de Ruby 2.0.0+, Rubygems, Bundler.
  • Connaissances de base sur Git.
  • Instance d’exécution de Red Hat OpenShift Service sur AWS 4.
  • Assurez-vous qu’une instance de Red Hat OpenShift Service sur AWS est en cours d’exécution et est disponible. Assurez-vous également que votre client CLI oc est installé et que la commande est accessible depuis votre shell de commande, de sorte que vous pouvez l’utiliser pour vous connecter à l’aide de votre adresse e-mail et mot de passe.

3.5.2. Configuration de la base de données

Les applications ferroviaires sont presque toujours utilisées avec une base de données. Dans le cas du développement local, utilisez la base de données PostgreSQL.

Procédure

  1. Installer la base de données:

    $ sudo yum install -y postgresql postgresql-server postgresql-devel
    Copy to Clipboard Toggle word wrap
  2. Initialiser la base de données:

    $ sudo postgresql-setup initdb
    Copy to Clipboard Toggle word wrap

    Cette commande crée le répertoire /var/lib/pgsql/data, dans lequel les données sont stockées.

  3. Démarrer la base de données:

    $ sudo systemctl start postgresql.service
    Copy to Clipboard Toggle word wrap
  4. Lorsque la base de données est en cours d’exécution, créez votre utilisateur de rails:

    $ sudo -u postgres createuser -s rails
    Copy to Clipboard Toggle word wrap

    A noter que l’utilisateur créé n’a pas de mot de passe.

3.5.3. Écrire votre candidature

Lorsque vous démarrez votre application Rails à partir de zéro, vous devez d’abord installer le gemme Rails. Ensuite, vous pouvez procéder à la rédaction de votre demande.

Procédure

  1. Installez le gemme Rails:

    $ gem install rails
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Successfully installed rails-4.3.0
    1 gem installed
    Copy to Clipboard Toggle word wrap

  2. Après avoir installé le gemme Rails, créez une nouvelle application avec PostgreSQL comme base de données:

    $ rails new rails-app --database=postgresql
    Copy to Clipboard Toggle word wrap
  3. Changez dans votre nouveau répertoire d’applications:

    $ cd rails-app
    Copy to Clipboard Toggle word wrap
  4. Lorsque vous avez déjà une application, assurez-vous que le bijou pg (postgresql) est présent dans votre fichier Gemfile. Dans le cas contraire, modifiez votre Gemfile en ajoutant le gemme:

    gem 'pg'
    Copy to Clipboard Toggle word wrap
  5. Générez un nouveau Gemfile.lock avec toutes vos dépendances:

    $ bundle install
    Copy to Clipboard Toggle word wrap
  6. En plus d’utiliser la base de données postgresql avec le gemme pg, vous devez également vous assurer que la config/database.yml utilise l’adaptateur postgresql.

    Assurez-vous de mettre à jour la section par défaut dans le fichier config/database.yml, de sorte qu’il ressemble à ceci:

    default: &default
      adapter: postgresql
      encoding: unicode
      pool: 5
      host: localhost
      username: rails
      password: <password>
    Copy to Clipboard Toggle word wrap
  7. Créez les bases de données de développement et de test de votre application:

    $ rake db:create
    Copy to Clipboard Toggle word wrap

    Cela crée une base de données de développement et de test dans votre serveur PostgreSQL.

3.5.3.1. Créer une page de bienvenue

Étant donné que Rails 4 ne sert plus une page publique statique/index.html en production, vous devez créer une nouvelle page racine.

Avoir une page d’accueil personnalisée doit faire les étapes suivantes:

  • Créez un contrôleur avec une action d’index.
  • Créez une page d’affichage pour l’action d’index du contrôleur de bienvenue.
  • Créez un itinéraire qui sert la page racine des applications avec le contrôleur créé et la vue.

Rails offre un générateur qui complète toutes les étapes nécessaires pour vous.

Procédure

  1. Générateur de rails d’exécution:

    $ rails generate controller welcome index
    Copy to Clipboard Toggle word wrap

    L’ensemble des fichiers nécessaires sont créés.

  2. éditer la ligne 2 dans le fichier config/routes.rb comme suit:

    root 'welcome#index'
    Copy to Clipboard Toggle word wrap
  3. Exécutez le serveur de rails pour vérifier la page est disponible:

    $ rails server
    Copy to Clipboard Toggle word wrap

    Consultez votre page en visitant http://localhost:3000 dans votre navigateur. Lorsque vous ne voyez pas la page, vérifiez les journaux qui sont affichés sur votre serveur pour déboguer.

Afin que votre application communique avec le service de base de données PostgreSQL exécuté dans Red Hat OpenShift Service sur AWS, vous devez modifier la section par défaut de votre config/database.yml pour utiliser des variables d’environnement, que vous devez définir ultérieurement lors de la création du service de base de données.

Procédure

  • Éditez la section par défaut dans votre config/database.yml avec des variables prédéfinies comme suit:

    Exemple de fichier YAML de configuration/base de données

    <% user = ENV.key?("POSTGRESQL_ADMIN_PASSWORD") ? "root" : ENV["POSTGRESQL_USER"] %>
    <% password = ENV.key?("POSTGRESQL_ADMIN_PASSWORD") ? ENV["POSTGRESQL_ADMIN_PASSWORD"] : ENV["POSTGRESQL_PASSWORD"] %>
    <% db_service = ENV.fetch("DATABASE_SERVICE_NAME","").upcase %>
    
    default: &default
      adapter: postgresql
      encoding: unicode
      # For details on connection pooling, see rails configuration guide
      # http://guides.rubyonrails.org/configuring.html#database-pooling
      pool: <%= ENV["POSTGRESQL_MAX_CONNECTIONS"] || 5 %>
      username: <%= user %>
      password: <%= password %>
      host: <%= ENV["#{db_service}_SERVICE_HOST"] %>
      port: <%= ENV["#{db_service}_SERVICE_PORT"] %>
      database: <%= ENV["POSTGRESQL_DATABASE"] %>
    Copy to Clipboard Toggle word wrap

3.5.3.3. Stocker votre application dans Git

Construire une application dans Red Hat OpenShift Service sur AWS nécessite généralement que le code source soit stocké dans un référentiel git, vous devez donc installer git si vous ne l’avez pas déjà.

Conditions préalables

  • Installez git.

Procédure

  1. Assurez-vous d’être dans votre répertoire d’application Rails en exécutant la commande ls -1. La sortie de la commande devrait ressembler à:

    $ ls -1
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    app
    bin
    config
    config.ru
    db
    Gemfile
    Gemfile.lock
    lib
    log
    public
    Rakefile
    README.rdoc
    test
    tmp
    vendor
    Copy to Clipboard Toggle word wrap

  2. Exécutez les commandes suivantes dans votre répertoire d’application Rails pour initialiser et commettre votre code à git:

    $ git init
    Copy to Clipboard Toggle word wrap
    $ git add .
    Copy to Clipboard Toggle word wrap
    $ git commit -m "initial commit"
    Copy to Clipboard Toggle word wrap

    Après que votre application est engagée, vous devez la pousser vers un référentiel distant. Compte GitHub, dans lequel vous créez un nouveau référentiel.

  3. Définissez la télécommande qui pointe vers votre référentiel git:

    $ git remote add origin git@github.com:<namespace/repository-name>.git
    Copy to Clipboard Toggle word wrap
  4. Appuyez sur votre application vers votre référentiel git distant.

    $ git push
    Copy to Clipboard Toggle word wrap

Il est possible de déployer votre application dans Red Hat OpenShift Service sur AWS.

Après avoir créé le projet d’application rails, vous êtes automatiquement passé au nouvel espace de noms du projet.

Le déploiement de votre application dans Red Hat OpenShift Service sur AWS comporte trois étapes:

  • Création d’un service de base de données à partir de Red Hat OpenShift Service sur l’image PostgreSQL d’AWS.
  • Créer un service frontend à partir de Red Hat OpenShift Service sur l’image du constructeur Ruby 2.0 d’AWS et votre code source Ruby on Rails, qui sont câblés avec le service de base de données.
  • Créer un itinéraire pour votre application.

3.5.4.1. Création du service de base de données

Procédure

L’application Rails s’attend à un service de base de données en cours d’exécution. Ce service utilise l’image de base de données PostgreSQL.

Afin de créer le service de base de données, utilisez la commande oc new-app. À cette commande, vous devez passer quelques variables d’environnement nécessaires qui sont utilisées à l’intérieur du conteneur de base de données. Ces variables d’environnement sont nécessaires pour définir le nom d’utilisateur, le mot de passe et le nom de la base de données. Les valeurs de ces variables d’environnement peuvent être modifiées par ce que vous souhaitez. Les variables sont les suivantes:

  • AJOUTER AU PANIER POSTGRESQL_DATABASE
  • AJOUTER AU PANIER POSTGRESQL_USER
  • AJOUTER AU PANIER POSTGRESQL_PASSWORD

La définition de ces variables garantit:

  • Il existe une base de données avec le nom spécifié.
  • Il existe un utilisateur avec le nom spécifié.
  • L’utilisateur peut accéder à la base de données spécifiée avec le mot de passe spécifié.

Procédure

  1. Créer le service de base de données:

    $ oc new-app postgresql -e POSTGRESQL_DATABASE=db_name -e POSTGRESQL_USER=username -e POSTGRESQL_PASSWORD=password
    Copy to Clipboard Toggle word wrap

    Afin de définir également le mot de passe pour l’administrateur de la base de données, ajouter à la commande précédente avec:

    -e POSTGRESQL_ADMIN_PASSWORD=admin_pw
    Copy to Clipboard Toggle word wrap
  2. Découvrez les progrès:

    $ oc get pods --watch
    Copy to Clipboard Toggle word wrap

3.5.4.2. Création du service frontend

Afin d’apporter votre application à Red Hat OpenShift Service sur AWS, vous devez spécifier un référentiel dans lequel votre application vit.

Procédure

  1. Créez le service frontend et spécifiez les variables d’environnement liées à la base de données qui ont été configurées lors de la création du service de base de données:

    $ oc new-app path/to/source/code --name=rails-app -e POSTGRESQL_USER=username -e POSTGRESQL_PASSWORD=password -e POSTGRESQL_DATABASE=db_name -e DATABASE_SERVICE_NAME=postgresql
    Copy to Clipboard Toggle word wrap

    Avec cette commande, Red Hat OpenShift Service sur AWS récupère le code source, configure le constructeur, construit l’image de votre application et déploie l’image nouvellement créée avec les variables d’environnement spécifiées. L’application est nommée Rails-app.

  2. Les variables d’environnement ont été ajoutées en consultant le document JSON de la configuration de déploiement de l’application rails:

    $ oc get dc rails-app -o json
    Copy to Clipboard Toggle word wrap

    Consultez la section suivante:

    Exemple de sortie

    env": [
        {
            "name": "POSTGRESQL_USER",
            "value": "username"
        },
        {
            "name": "POSTGRESQL_PASSWORD",
            "value": "password"
        },
        {
            "name": "POSTGRESQL_DATABASE",
            "value": "db_name"
        },
        {
            "name": "DATABASE_SERVICE_NAME",
            "value": "postgresql"
        }
    
    ],
    Copy to Clipboard Toggle word wrap

  3. Consultez le processus de construction:

    $ oc logs -f build/rails-app-1
    Copy to Clipboard Toggle word wrap
  4. Après la construction est terminée, regardez les pods en cours d’exécution dans Red Hat OpenShift Service sur AWS:

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    Il faut voir une ligne commençant par myapp-&lt;numéro&gt;-&lt;hash&gt;, et c’est votre application qui s’exécute dans Red Hat OpenShift Service sur AWS.

  5. Avant que votre application ne soit fonctionnelle, vous devez initialiser la base de données en exécutant le script de migration de la base de données. Il y a deux façons de le faire:

    • À partir du conteneur frontal en cours d’exécution:

      • Exec dans le conteneur frontal avec commande rsh:

        $ oc rsh <frontend_pod_id>
        Copy to Clipboard Toggle word wrap
      • Exécutez la migration à partir de l’intérieur du conteneur:

        $ RAILS_ENV=production bundle exec rake db:migrate
        Copy to Clipboard Toggle word wrap

        Lorsque vous exécutez votre application Rails dans un environnement de développement ou de test, vous n’avez pas à spécifier la variable d’environnement RAILS_ENV.

    • En ajoutant des crochets de cycle de vie avant déploiement dans votre modèle.

3.5.4.3. Créer un itinéraire pour votre application

Il est possible d’exposer un service pour créer un itinéraire pour votre application.

Avertissement

Assurez-vous que le nom d’hôte que vous spécifiez résout dans l’adresse IP du routeur.

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat