Статьи

MongoDB на RedHat OpenShift с MongoLab

Привет, фанаты RedHat — у нас есть ваши потребности хостинга MongoDB!

В сегодняшнем посте мы представим краткое руководство по подключению OpenShift , бесплатной платформы масштабирования RedHat с платформой как услуга (PaaS), с нашей популярной базой данных MongoDB как услуга (DBaaS). , MongoLab .

В демонстрационных целях мы будем использовать написанное нами приложение Node.js (доступно для загрузки здесь ). Все, что нужно для подключения приложения OpenShift, — это пять простых шагов!

Шаг 1. Создайте учетную запись OpenShift и приложение

Создайте учетную запись на http://openshift.redhat.com и установите инструмент командной строки rhc на свой компьютер для разработки. Для получения дополнительной информации о rhc см. Https://openshift.redhat.com/community/developers/rhc-client-tools-install .

После установки rhc создайте приложение nodejs-0.6, используя путь к этому хранилищу в качестве --from-codeаргумента и заменив его на желаемое имя приложения:

% rhc app create  nodejs-0.6
--from-code https://github.com/mongolab/mongolab-openshift-quickstart
% cd

rhc инициализирует ваше приложение, используя этот репозиторий в качестве базового уровня.

Шаг 2. Создание учетной записи и базы данных MongoLab

  1. Зарегистрируйте аккаунт на http://www.mongolab.com . После того, как вы успешно создали свою учетную запись MongoLab, вы увидите заголовок «Базы данных» и кнопку «Создать новую».
  2. Нажмите на кнопку «Создать новый», чтобы создать базу данных. Обязательно укажите имя пользователя базы данных и пароль. Эти учетные данные не совпадают с вашими учетными данными MongoLab.
  3. Нажмите на вашу базу данных. Целевая страница базы данных содержит строку подключения URI mongodb в форме:
    mongodb://<db user>:<db password>@<host>:<port>/<db name>
  4. Copy this value somewhere helpful and replace placeholders with your database user credentials.

Step 3. Commit and deploy the app

When you’ve created your app, the rhc command line client automatically initialized a git repo with a remote link to OpenShift. The code is also already deployed to your app gear.

If you don’t make any changes, you can skip this step. However, if you make any modifications (now or later), perform the following to update the code on the gear:

% git add .
% git commit -m "my first commmit" -a
% git push

Step 4. Configure environment variables on the app gear

The example code uses mongodb://localhost:27017/test when the MONGOLAB_URI environment variable is not available. This is sufficient for testing with a MongoDB database running on your local machine, but not for production.

Note: We find that configuring this value outside of the code (and not storing it in a repository) allows for maximum security and flexibility. However, there are repository-driven alternatives for configuring this environment variable that may meet your requirements. See how to create and use environment variables on the server for more information.

To configure your environment variable without placing credentials in a repository:

  1. Login to http://openshift.redhat.com
  2. Click My Apps.
  3. Click the > next to your app name to reach your application page.
  4. Click Want to log in to your application?
  5. Copy the provided ssh shell command to a shell window and press enter to ssh to your app gear.
  6. Open your gear’s .bash_profile in your text editor of choice. It is located at ~/app-root/data/.bash_profile.
  7. Add the line export MONGOLAB_URI=<db uri> where db uri is the mongodb URI you obtained in Step 2, with your database user credentials added.
  8. After editing the file, run source ~/app-root/data/.bash_profile
  9. Use echo $MONGOLAB_URI to confirm success. The value you added should be displayed at the console.
  10. Restart your app by running ctl_all stop then ctl_all start.

Step 5. View the app

Visit your deployed app at

    http://<app name>-<app namespace>.rhcloud.com

And there you have it – just five steps to get your OpenShift deployed application connected to your MongoLab database!

If you ever have any questions, don’t hesitate to get in touch with us at [email protected].