...

вторник, 19 августа 2014 г.

[recovery mode] Python на облачном хостинге Infobox Jelastic: запускаем Django CMS

Jelastic — многоязыковая платформа как сервис. Сначала была добавлена поддержка Java, затем PHP и Ruby, но на этом разработчики не остановились. Месяц за месяцем вытачивалась новая для Jelastic платформа — Python. В этой статье будет рассказано, как развернуть Django CMS на Infobox Jelastic.

В конце статьи информация о том, как получить 300 рублей на счет для экспериментов с Infobox Jelastic.



ЧаВо по Python в Jelastic




В Jelastic поддерживается веб-сервер Apache для хостинга приложений Python. Реализована поддержка Apache + mod_wsgi.

Вы можете воспользоваться одной из 3х версий Python:


  • 2.7

  • 3.3

  • 3.4




Все версии предустановлены в контейнеры Python. Пользователь может выбрать необходимую версию при создании окружения и изменить, при необходимости, в процессе работы.



Развертывание приложений



Вы можете просто развернуть приложение Python:

1. с помощью архива или ссылки




2. Через GIT/SVN


GIT Infobox Jelastic


Вы можете развернуть только одно Python приложение на окружение. Оно будет развернуто в ROOT по умолчанию. Конечно, вы можете воспользоваться и SSH для развертывания приложения.


Когда вы разворачиваете пакет, его корень должен содержать следующие файлы:



  • requirements.txt с именами всех модулей Python, необходимых приложению;

  • application – скрипт точки входа для запуска вашего приложения с Apache mod_wsgi





Управление пакетами/модулями



Для успешного развертывания и запуска приложения Python могут потребоваться некоторые дополнительные модули или другие пакеты. Управление требуемым ПО организовано через pip, популярную систему управления пакетами Python.

Для загрузки и установки модулей Python есть два способа:



  • Написать список требуемых модулей в requirements.txt и положить файл в корень пакета с проектом. Скрипт развертывания прочитает файл и установит необходимые модули с помощью pip автоматически;

  • Соединиться с вашим контейнером через SSH и использовать следующие команды:




pip install {package_name} – для установки необходимого модуля;

pip uninstall {package_name} – для удаления установленного модуля;

pip install –upgrade{package_name} – для обновления конкретного модуля до последней версии;

pip install -r requirements.txt – для установки всех модулей из requirements.txt;

pip list — для просмотра уже установленных модулей.

Используя дополнительные команды и их параметры вы можете указать предпочитаемые модули и версии, настроить разрешение зависимостей, показать информацию об установленных модулях или поискать необходимый в репозитории PyPI. Для дальнейшего ознакомления с pip рекомендуем руководство пользователя.


Мониторинг логов



Jelastic создает следующие файлы логов, доступные в Python WSGI:


  • access_log-{дата}

  • error_log-{дата}




Вы можете посмотреть логи, кликнув на кнопку Log на контейнере Apache в вашем окружении. Здесь вы можете проследить все действия, выполняемые с вашим окружением Python.
Доступные фреймворки



В настоящий момент Jelastic поддерживает следующие фреймворки на Python:


  • Django

  • Flask




Вы можете развернуть различные приложения Python, основанные на этих фреймворках. Ниже мы покажем, как разворачивать DjangoCMS, а в следующей статье посмотрим на Quokka CMS (основанной на Flask).

Развертывание DjangoCMS




Django – фреймворк с открытыми исходными текстами для приложений Python. Он помогает упростить процесс создания сложных веб-приложений, каждое из которых может состоять из набора подключаемых модулей. Давайте посмотрим на преимущества использования Django в Infobox Jelastic и связки Apache + mod_wsgi на примере организации хостинга приложения на Django CMS.
Создание окружения



Создадим окружение для Python в Infobox Jelastic. Зарегистрируйте аккаунт на http://ift.tt/1A07kxH (бесплатно активируется пробная версия), залогиньтесь в панель управления и нажмите кнопку «Создать окружение».


Перейдите к вкладке «Python». Apache будет выбран автоматически. Укажите минимальный и максимальный лимиты доступных ресурсов (с Python работает автомасштабирование Jelastic, позволяющее оплачивать за потребляемые ресурсы по факту без необходимости резервирования ресурсов), введите имя окружения (например «django») и нажмите Create.




  • Вы можете также выбрать одну из предоставляемых версий Python: 2.7, 3.3, 3.4. Выбирая, учитывайте информацию о совместимости Django.

  • Если вы развертываете большое и посещаемое приложение, мы рекомендуем добавить отдельный контейнер с базой данных для вашего приложения. В остальных случаях можно использовать встроенную базу данных SQLite, которая будет размещена внутри контейнера приложений.




В течение минуты будет создано окружение в вашей панели управления.

Infobox Jelastic Django


Теперь мы можем непосредственно приступить к развертыванию DjangoCMS одним из следующих способов:



  • построение и развертывание нового приложения;

  • развертывание существующего приложения.




Построение и развертывание Django CMS



1. Сгенерируйте и добавьте публичный SSH ключ в вашу панель управления.

2. Установите соединение по SSH с контейнером Apache вашего окружения.


3. После входа в контейнер, убедитесь, что вы находитесь в домашней директории вашего пользователя:



cd ~




4. Вы должны создать виртуальное окружение вашего приложения внутри контейнера. Это позволит вам изолировать окружение Python и устанавливать пакеты без необходимости получения привилегий администратора.

virtualenv virtenv




5. Активируйте и переключитесь на созданное виртуальное окружение.

source virtenv/bin/activate




6. Теперь, давайте установим набор модулей, требуемых Django.

pip install django django-cms djangocms_video djangocms_teaser djangocms_picture djangocms_link django-reversion djangocms_inherit djangocms_googlemap djangocms_flash djangocms_file djangocms_column djangocms-installer djangocms_text_ckeditor djangocms_style




Через несколько минут операция завершится.

7. Сотрите предустановленное приложение по умолчанию и создайте новое для Django CMS.

rm -rf ROOT; djangocms -p . ROOT




8. После выполнения вышеприведенной команды вам зададут несколько дополнительных вопросов по настройке нового приложения.

Уделите особое внимание настройке базы данных:


  • Если вы выбрали использование отдельной базы данных (MySQL контейнер при создании окружения Jelastic), укажите строку подключения:

    http://ift.tt/1o8kG1s, где {env_name} – имя контейнера базы данных.

  • Если вы предпочитаете использовать встроенную базу данных SQLite, введите следующую строку:

    sqlite://localhost/ROOT/project.db




Завершите оставшиеся шаги мастера установки вводом необходимых параметров или оставив параметры по умолчанию (отображаются в конце строки в квадратных скобках).

Infobox Jelastic Django hosting


9. Когда приложение настроено, у вас спросят имя пользователя, пароль и адрес электронной почты для CMS.


Infobox Jelastic Python Django CMS admin credentials

10. Введите следующую команду для создания нового файла и указания точки входа для mod_wsgi модуля:



vim ROOT/application




Нажмите «i» для перехода в режим редактирования и вставьте следующие строки:

import os,sys
virtenv = os.environ['OPENSHIFT_PYTHON_DIR'] + '/virtenv/'
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
try:
execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
pass


sys.path.append('/opt/repo')
sys.path.append('/opt/repo/ROOT')

os.environ['DJANGO_SETTINGS_MODULE'] = 'ROOT.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()




Сохраните изменения и закройте Vim, нажав Esc и написав ":wq".

12. Введите команду:



vim ROOT/settings.py




В открывшемся файле найдите и замените строку:

STATICFILES_DIRS = (
os.path.join(BASE_DIR, ‘ROOT’, ‘static’),
)




следующим содержанием:

STATICFILES_DIRS = (
os.path.join(BASE_DIR, ‘ROOT’, ‘static_local’),
)




Сохраните изменения и закройте Vim.


Создайте новую поддиректорию для статического контента:



mkdir ROOT/static_local




и, наконец, запустите синхронизацию ресурсов:

./manage.py collectstatic




Введите «yes», если система запросит подтверждения.

Это все! Теперь вы можете кликнуть «Открыть в браузере» и насладиться Django CMS.



Вы увидите экран приветствия.



Для доступа к панели администрирования Django CMS добавьте /admin в конец URL окружения. Для доступа используйте введенные вами при установке Django CMS учетные данные суперпользователя.



Развертывание существующего приложения Django



Если вы заранее собрали и упаковали приложение Django, процедура развертывания может быть выполнена всего за несколько шагов, как показано ниже.

Не забудьте про необходимость наличия requirements.txt и application файлов в пакете. Пример в предыдущем разделе.


1. Загрузите пакет с приложением Django в Диспетчер дистрибутивов.



2. Нажмите «Развернуть в...» и выберите необходимое окружение.



3. Подождите минутку окончания развертывания и нажмите «Открыть в браузере».



Это все! Приятной работы с приложением на Django.


Заключение




Мы очень счастливы представить Вам поддержку Python в Infobox Jelastic с обеспечением возможности гибкого масштабирования приложений и автоматизациями Jelastic. Мы постарались упростить разработку и запуск приложений Python на платформе Infobox Jelastic без Vendor–lock на быстром и надежном оборудовании.

Попробуйте сейчас и получите 300 рублей на счет Infobox Jelastic. Зарегистрируйтесь и по окончании триала нажмите кнопку «Перейти на платную версию». Заполните информацию о себе. Пришлите ваш логин нам и мы начислим вам бонус (из статей бонус можно получить 1 раз на 1 аккаунт).


Успешного использования Infobox Jelastic!


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий