infra_django_apache

Логотип Django

Ansible Роль - Python3 Django

Роль Ansible для развертывания одного или нескольких приложений Django на сервере Linux с использованием Apache2 в качестве веб-сервера.

Купите мне кофе

Статус теста Molecule Статус теста YamlLint Статус теста PyLint Статус теста Ansible-Lint Ansible Galaxy

Логи Molecule: Краткий, Полный

Тестировано на:

  • Debian 11

Установка

# последняя версия
ansible-galaxy role install git+https://github.com/ansibleguy/infra_django_apache

# из galaxy
ansible-galaxy install ansibleguy.infra_django_apache

# или в пользовательский путь для ролей
ansible-galaxy install ansibleguy.infra_django_apache --roles-path ./roles

# установка зависимостей
ansible-galaxy install -r requirements.yml

Использование

Хотите простой интерфейс Ansible? Посмотрите мой Ansible WebUI

Конфигурация

Вам нужно определить ваши инстансы, настроив словарь 'mariadb'!

django:
  sites:
    niceApp:
      domain: 'django.ansibleguy.net'
      project: 'super'  # директория с 'settings.py' названа так
      
      sync_code:  # синхронизация локального кода на удаленный сервер
        enabled: true
        src: '/home/ansibleguy/code/niceApp'
        static_src: '/home/ansibleguy/code/niceApp_static'
      
      venv: '/var/lib/niceApp'

      python_modules:
        present: ['netaddr', 'pycryptodome']
      
      env_pythonpath: ['/var/lib/myOtherApp']  # будет добавлено в переменную окружения PYTHONPATH

      ssl:
        mode: 'letsencrypt'

      letsencrypt:
        email: '[email protected]'

Вы можете использовать 'ansible-vault', чтобы зашифровать ваши пароли:

ansible-vault encrypt_string

Исполнение

Запустите плейбук/роль:

ansible-playbook -K -D -i inventory/hosts.yml django.yml --ask-vault-pass

Есть также несколько полезных тегов:

  • base => только настройка основ; экземпляры не будут затронуты
  • sites
  • config
  • db
  • sync => только синхронизация локального кода с удаленным хостом (если разрешено пользователем)
  • django => не запускать подроли для apache и/или mariadb

Чтобы отладить ошибки - вы можете установить переменную 'debug' во время выполнения:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes

Функциональность

  • Установка пакетов

    • Зависимости Ansible (минимальные)
  • Конфигурация

    • Apache с использованием ЭТОЙ роли

    • Поддержка MySQL или PostgreSQL

    • По умолчанию включено:

      • База данных MariaDB с использованием ЭТОЙ роли
    • По умолчанию выключено:

      • Служба резервного копирования базы данных
      • Специальная конфигурация для apache => может быть передана через словарь 'django'
      • Запуск 'collectstatic'
    • Конфигурация по умолчанию:

      • Будет использоваться самоподписанный сертификат
      • Тип базы данных => MariaDB
        • База данных будет установлена автоматически
      • Использование виртуального окружения Python
      • Скрипт миграции базы данных будет создан в директории venv

Информация

  • Примечание: эта роль в настоящее время поддерживает только системы на основе Debian

  • Примечание: Большинство функциональностей роли можно включать или выключать.

    Для всех доступных опций - смотрите файл default-config, который находится в главном/сайтовом defaults-файле!

  • Внимание: Не каждая настройка/переменная, которую вы предоставляете, будет проверена на корректность. Плохая конфигурация может сломать роль!

О проекте

Role to deploy one or multiple django sites using apache2 to host them

Установить
ansible-galaxy install ansibleguy/infra_django_apache
Лицензия
other
Загрузки
1396
Владелец
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg