[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
Вы можете развернуть только одно 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://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!