http://habrahabr.ru/company/infobox/blog/233793/
Jelastic — многоязыковая платформа как сервис. Сначала была добавлена поддержка Java, затем PHP и Ruby, но на этом разработчики не остановились. Месяц за месяцем вытачивалась новая для Jelastic платформа — Python. В этой статье будет рассказано, как развернуть Django CMS на Infobox Jelastic.
В конце статьи информация о том, как получить 300 рублей на счет для экспериментов с
Infobox Jelastic.
ЧаВо по Python в Jelastic
В Jelastic поддерживается веб-сервер Apache для хостинга приложений Python. Реализована поддержка Apache + mod_wsgi.
Вы можете воспользоваться одной из 3х версий Python:
Все версии предустановлены в контейнеры Python. Пользователь может выбрать необходимую версию при создании окружения и изменить, при необходимости, в процессе работы.
Развертывание приложений
Вы можете просто развернуть приложение Python:
1.
с помощью архива или ссылки
2.
Через GIT/SVN
Вы можете развернуть только одно 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:
Вы можете развернуть различные приложения Python, основанные на этих фреймворках. Ниже мы покажем, как разворачивать DjangoCMS, а в следующей статье посмотрим на Quokka CMS (основанной на Flask).
Развертывание DjangoCMS
Django – фреймворк с открытыми исходными текстами для приложений Python. Он помогает упростить процесс создания сложных веб-приложений, каждое из которых может состоять из набора подключаемых модулей. Давайте посмотрим на преимущества использования Django в Infobox Jelastic и связки Apache + mod_wsgi на примере организации хостинга приложения на Django CMS.
Создание окружения
Создадим окружение для Python в Infobox Jelastic. Зарегистрируйте аккаунт на
http://infobox.ru/hosting/cloud/ (бесплатно активируется пробная версия), залогиньтесь в панель управления и нажмите кнопку «Создать окружение».
Перейдите к вкладке «Python». Apache будет выбран автоматически. Укажите минимальный и максимальный лимиты доступных ресурсов (с Python работает автомасштабирование Jelastic, позволяющее оплачивать за потребляемые ресурсы по факту без необходимости резервирования ресурсов), введите имя окружения (например «django») и нажмите
Create.
- Вы можете также выбрать одну из предоставляемых версий Python: 2.7, 3.3, 3.4. Выбирая, учитывайте информацию о совместимости Django.
- Если вы развертываете большое и посещаемое приложение, мы рекомендуем добавить отдельный контейнер с базой данных для вашего приложения. В остальных случаях можно использовать встроенную базу данных SQLite, которая будет размещена внутри контейнера приложений.
В течение минуты будет создано окружение в вашей панели управления.
Теперь мы можем непосредственно приступить к развертыванию 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), укажите строку подключения:
mysql://mysql-{env_name}.app.jelasticloud.com, где {env_name} – имя контейнера базы данных.
- Если вы предпочитаете использовать встроенную базу данных SQLite, введите следующую строку:
sqlite://localhost/ROOT/project.db
Завершите оставшиеся шаги мастера установки вводом необходимых параметров или оставив параметры по умолчанию (отображаются в конце строки в квадратных скобках).
9. Когда приложение настроено, у вас спросят имя пользователя, пароль и адрес электронной почты для CMS.
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!