- Веб-приложение Django
- Socket.IO сервер на Node.js
- Сервер задач Celery
- Планировщик Celerybeat
Шаг нулевой
Необходимы следующие вещи:
- Установленные Ajenti V (
ajenti-v, ajenti-v-python-gunicorn, ajenti-v-nodejs
) и Jenkins - Беспарольный sudo для пользователя jenkins (в целях безопасности:
jenkins ALL:NOPASSWD /usr/bin/ajenti-ipc*
) - Какой-либо метод автоматического деплоймента кода самого проекта. В нашем случае используется Fabric и вот этот fabfile
Шаг первый. Настройка Ajenti V
Процесс настройки в принципе несложен, поэтому отметим только важные моменты.
Название и местположение сайта:
URL и серверы Django и Node:
Процессы Celery:
Командные строки к Celery:
/srv/bucket/env/bin/python ./manage.py celery worker --loglevel=info --settings=config.environments.prod /srv/bucket/env/bin/python ./manage.py celerybeat --settings=config.environments.prod
Жмем Apply.
Шаг второй: экспортируем конфигурацию
ajenti-ipc v export Bucket > website.json
Сохраняем результат в нашем проекте как deployment/website.json.
Пример конфига.
Шаг третий: настраиваем Jenkins
Правило сборки в Jenkins будет состоять из трех шагов:
- Перевод сайта в режим обслуживания и импорт конфигурации
- Деплоймент файлов сайта
- Перевод сайта обратно в рабочий режим
Перевод сайта в режим обслуживания и импорт конфигурации
sudo ajenti-ipc v import `pwd`/deployment/website.json sudo ajenti-ipc v maintenance <имя сайта> on
Перевод сайта в рабочий режим
sudo ajenti-ipc v maintenance <имя сайта> off
Запускаем нашу сборку в Jenkins и видим как во время обновления пользователи лицезреют приятное глазу сообщение…
… а наш сайт замечательно работает, и вы восхитительны!
Разные ссылочки на документацию: Jenkins, Ajenti, Ajenti V, Fabric
ссылка на оригинал статьи http://habrahabr.ru/post/218587/
Добавить комментарий