Рубрики
Uncategorized

Как настроить Django Q с руководителем на Beanstalk AL2

Работа над Bindech проекта Fintech Я решил использовать пакет Django Q для планирования и выполнения … Помечено Django, DevOps, AWS, Beanstalk.

Работая над Bindech проекта Fintech Я решил использовать пакет Django Q для планирования и выполнения разных задач на заднем плане. Наш поток CD-CI был основан на машине Beanstalk New Amazon Linux 2 (AL2). Хитрость заключается в том, что файлы конфигурации Beanstalk должны включать все инструкции для запуска вашего кода с нуля на новой виртуальной машине. Почему? Вот как работает AWS Beanstalk: он управляет сервером для вас и требует точных инструкций о том, что для установки/настройки в случае, если он должен запустить обновление или воссоздание/масштабировать виртуальные серверы с нуля. Я надеялся Google в Google Doactent Bash Script для AL2, но их нет. Поэтому мне пришлось снова погрузиться в развлеченные вещи и написать свое собственное.

PostDey Whules, чтобы получить кластер Django-Q, работающий на Beanstalk’s Al2

Примечание # 1 : Это руководство предназначено для экземпляров Amazon Linux 2 EC2, которые были прокатаны Для платформы Beanstalk Python в апреле 2020 года. Если вы ищете способ настроить кластер Django Q на старой версии (Amazon Linux), вот Рабочая гист для этого .

Примечание # 2 : Если вы не знакомы с кластером Django Q (Диспетчер задач на основе сельдерей) Я настоятельно рекомендую Чтение документов Отказ Помимо среды Beanstalk Django Q требует некоторого сообщений брокера для планирования задач, поэтому вам нужно будет настроить отдельный сервер Redis или Amazon SQS и подключить его к вашей группе безопасности Отказ

Я предполагаю, что у вас есть ваш проект, настроенный для развертывания для Beanstalk. AWS Beanstalk позволяет вам разместить пользовательское количество сценариев Bash с расширением файла .sh в следующую папку .platform/hooks/postdeploy В вашем каталоге корневого проекта. Для удобства я разбил его на 4 шага. Вот …| Полный гид Отказ

01_set_env.sh Возьмите на окружающую среду и включите Amazon-Linux-дополнения

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

02_django_migrate.sh Только Django рутинные команды

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

03_django_q.sh Конфигурация руководителя Django Q

Теперь у нас есть Django up и бега, но нам все еще нужно запустить кластер Django Q и убедиться, что он будет вжин, даже если процесс вылетает. Здесь мы готовим блок конфигурации, который сообщает руководителю (система управления процессом Linux), где можно найти и как запустить кластер Django Q.

04_supervisor_init.sh Конфигурация демона руководителя

Последнее, но не в последнюю очередь: нам нужно позаботиться о самом руководителям и добавить конфигурацию для своего демона. Таким образом, мы уверены, что руководитель будет загружен после перезагрузки экземпляра EC2. Это последний файл сценария Bash, но обратите внимание на эту строку: sudo cp/var/app/current/supervisord.sample/etc/init.d/supervisord

/var/app/ust/ — Это путь по умолчанию к вашему проекту. В моем корневом каталоге я разместил Supervisord образец файла конфигурации (Dan Mackinlay). Вы можете разместить его туда, куда хотите, просто не забудьте изменить путь в скрипте Bash.

Вот и все, ты приеден. Это руководство не покрывает полный поток CI-CD с приложением Django и AWS, но я мог бы покрывать его в следующей статье. Будьте на связи!

Эта статья была первоначально Опубликовано в моем блоге

Оригинал: «https://dev.to/vlntsolo/how-to-configure-django-q-with-supervisor-on-al2-beanstalk-4gh1»