cdriehuys.django-app

cdriehuys.django-app

Travis

Rola Ansible do uruchamiania aplikacji Django z użyciem gunicorn.

Uwaga: Jeśli ta rola nie ma jakiejkolwiek funkcjonalności, której potrzebujesz, śmiało otwórz zgłoszenie, abyśmy mogli to omówić.

Spis treści

Wymagania

Aby wykorzystać ustawienia przesłane przez rolę, musisz zaimportować lokalny plik ustawień w swoim pliku ustawień produkcyjnych. Na przykład:

# production_settings.py

DEBUG = False
ALLOWED_HOSTS = ['...']


try:
    from app_package.local_settings import *
except ImportError:
    pass

Zakładamy również pewną strukturę twojego projektu. Choć można to zmienić, ustawiając odpowiednie zmienne, najłatwiej będzie, jeśli twój projekt będzie miał następującą strukturę:

app-name
├── app_package
│   ├── app_package
│   │   └── settings.py
│   ├── other_apps
│   └── are_here
├── LICENSE
└── requirements.txt

Zmienne roli

Oto lista zmiennych używanych przez rolę. Każda zmienna, z wyjątkiem tych w sekcji Wymagane, ma podaną domyślną wartość.

Wymagane

Następujące zmienne muszą być ustawione, aby rola mogła działać.

# Ścieżka do repozytorium git, w którym przechowywany jest twój kod
app_repo: https://twoje-repo-host/user/repo-name

# Klucz tajny do używania w Django
django_secret_key: twój tajny klucz

Często używane

Te ustawienia są używane do kontrolowania informacji o twoim projekcie. To również zmienne, które najczęściej są nadpisywane, ponieważ różnią się w zależności od projektu.

# Przyjazna nazwa twojej aplikacji. Twój projekt będzie
# sklonowany do katalogu o tej nazwie.
app_name: app

# Nazwa pakietu to nazwa twojego modułu Python. To jest
# nazwa, którą podałeś przy 'django-admin startproject <app_package>'.
app_package: app

# Wersja twojej aplikacji do wdrożenia. Może to być
# konkretne hasło commit, nazwa gałęzi lub nazwa tagu.
app_repo_version: master

# Lista pakietów systemowych, które muszą być zainstalowane
# aby twój projekt działał.
app_required_packages: []

# Plik ustawień Django do użycia.
django_settings_module: "{{ app_package }}.settings"

Wspólne

Te zmienne są używane przez wiele ról do kontrolowania wspólnego zachowania.

# Czas, przez jaki pamięć podręczna apt jest ważna, w sekundach
apt_cache_time: 3600

Django

Te zmienne są używane do konfigurowania zachowania Django.

# Konfiguracja bazy danych. Powinna to być słownik zawierający
# te same atrybuty, których oczekuje Django (ENGINE, HOST, USER itp.).
django_databases: {}

# Lista poleceń zarządzających Django, które mają być uruchomione podczas wdrożenia. To
# powinno być pełne polecenie, takie jak 'collectstatic --noinput'
django_manage_commands: []

# Dodatkowe ustawienia Django, które chcesz skonfigurować, można
# podać jako słownik. Upewnij się, że wartości są podwójnie cudzysłowione, aby
# poprawnie je przetworzyć.
django_project_settings: {}

# Ścieżka do głównego katalogu projektu Django
django_project: /opt/{{ app_name }}

# Ścieżka do aplikacji Django (katalog z 'manage.py')
django_app_dir: "{{ django_project }}/{{ app_package }}"

# Ścieżka, w której lokalny plik ustawień będzie przesyłany
django_local_settings: "{{ django_app_dir }}/{{ app_package }}/local_settings.py"

# Ścieżka do pliku requirements.txt
django_requirements: "{{ django_project }}/requirements.txt"

# Ścieżka do pliku dziennika Django. Nic nie będzie tu zapisywane, chyba
# że nadpiszesz ustawienie 'django_logging'.
django_log_file: /var/log/{{ app_name }}/django.log

# Konfiguracja logowania Django. Powinien to być słownik YAML z
# tymi samymi atrybutami, które oczekuje moduł logowania Pythona.
django_logging: {}

# Ścieżki, w których będą przesyłane pliki statyczne
django_media_root: /var/www/{{ inventory_hostname }}/media
django_static_root: /var/www/{{ inventory_hostname }}/static

Gunicorn

Następujące zmienne kontrolują konfigurację serwera Gunicorn, który odpowiada za serwowanie aplikacji Django.

# Określ, którą wersję gunicorn zainstalować. Może to być dowolna wersja,
# którą akceptuje pip.
gunicorn_version: gunicorn

# Użytkownik stworzony do uruchamiania gunicorn.
gunicorn_user: gunicorn

# Ścieżka, w której plik konfiguracyjny usługi gunicorn jest przesyłany.
gunicorn_service_conf: /etc/systemd/system/gunicorn.service

# Ścieżka, w której znajduje się plik konfiguracyjny gniazda gunicorn.
gunicorn_socket_conf: /etc/systemd/system/gunicorn.socket

# Ścieżka do pliku konfiguracyjnego tymczasowych plików gunicorn.
gunicorn_tempfile_conf: /etc/tmpfiles.d/gunicorn.conf

# Katalog względny do '/run', w którym przechowywane są informacje o czasie działania
gunicorn_runtime_directory: gunicorn

# Ścieżka do przechowywania pliku PID Gunicorn
gunicorn_pid: /run/{{ gunicorn_runtime_directory }}/pid

# Ścieżka do gniazda wykorzystywanego do komunikacji z gunicorn
gunicorn_socket: /run/{{ gunicorn_runtime_directory }}/socket

# Unixowa ścieżka do gniazda gunicorn
gunicorn_socket_unix: "unix:{{ gunicorn_socket }}"

# Ścieżka do pliku binarnego gunicorn
gunicorn_bin: "{{ venv }}/bin/gunicorn"

# Katalog, z którego uruchamiany jest gunicorn
gunicorn_working_directory: "{{ django_app_dir }}"

# Ścieżka do aplikacji WSGI, która ma być uruchomiona, w odniesieniu do
# 'gunicorn_working_directory'.
gunicorn_wsgi_app: "{{ app_package }}.wsgi:application"

# Dodatkowe zmienne środowiskowe, z którymi uruchamiana jest usługa gunicorn.
# Te zmienne są również ustawiane podczas uruchamiania zadań 'manage.py'.
gunicorn_environment: {}

Zależności

Zależności od następujących ról:

- cdriehuys.virtualenv

Przykładowy playbook

Aby uruchomić rolę, dodaj ją w następujący sposób.

- hosts: all
  roles:
     - cdriehuys.django-app

Licencja

MIT

Informacje o autorze

Chathan Driehuys (cdriehuys@gmail.com)

O projekcie

Deploy a Django app using Gunicorn.

Zainstaluj
ansible-galaxy install cdriehuys.django-app
Licencja
mit
Pobrania
115
Właściciel
Software developer from North Carolina.