ansibleguy.infra_django_apache
Rola Ansible - Python3 Django
Rola Ansible do wdrażania jednej lub wielu aplikacji Django na serwerze Linux przy użyciu Apache2 jako serwera www.
Testowane:
- Debian 11
Instalacja
# najnowsza wersja
ansible-galaxy role install git+https://github.com/ansibleguy/infra_django_apache
# z galaxy
ansible-galaxy install ansibleguy.infra_django_apache
# lub do niestandardowej ścieżki roli
ansible-galaxy install ansibleguy.infra_django_apache --roles-path ./roles
# instalacja zależności
ansible-galaxy install -r requirements.yml
Użytkowanie
Chcesz prosty interfejs graficzny dla Ansible? Sprawdź moje Ansible WebUI
Konfiguracja
Musisz zdefiniować swoje instancje, konfigurując słownik 'mariadb'!
django:
sites:
niceApp:
domain: 'django.ansibleguy.net'
project: 'super' # katalog zawierający 'settings.py' nosi tę nazwę
sync_code: # synchronizuje lokalny kod z zdalnym serwerem
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'] # zostanie dodany do zmiennej środowiskowej PYTHONPATH Django
ssl:
mode: 'letsencrypt'
letsencrypt:
email: '[email protected]'
Możesz chcieć użyć 'ansible-vault' do zaszyfrowania swoich haseł:
ansible-vault encrypt_string
Wykonanie
Uruchom playbook/rolę:
ansible-playbook -K -D -i inventory/hosts.yml django.yml --ask-vault-pass
Dostępne są również użyteczne tagi:
- base => tylko podstawowa konfiguracja; instancje nie będą zmieniane
- sites
- config
- db
- sync => tylko synchronizuj lokalny kod z zdalnym hostem (jeśli włączone przez użytkownika)
- django => nie uruchamiaj sub-rol dla apache i/lub mariadb
Aby debugować błędy, możesz ustawić zmienną 'debug' w czasie wykonywania:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
Funkcjonalność
Instalacja pakietów
- Minimalne zależności Ansible
Konfiguracja
Apache używając TEJ roli
Wsparcie dla MySQL lub PostgreSQL
Domyślnie włączone:
- Baza danych MariaDB używając TEJ roli
Domyślnie wyłączone:
- Usługa kopii zapasowej bazy danych
- Specjalna konfiguracja apache => można przekazać używając słownika 'django'
- Uruchamianie 'collectstatic'
Domyślna konfiguracja:
- Będzie używany certyfikat samopodpisany
- Typ bazy danych => MariaDB
- Baza danych zostanie zainstalowana automatycznie
- Używanie wirtualnego środowiska Pythona
- Skrypt migracji bazy danych zostanie utworzony w katalogu venv
Informacje
Uwaga: ta rola obecnie wspiera tylko systemy oparte na Debianie
Uwaga: Większość funkcjonalności roli można włączyć lub wyłączyć.
Aby zobaczyć wszystkie dostępne opcje - sprawdź domyślną konfigurację w głównym pliku domyślnym!
Ostrzeżenie: Nie każda ustawiona zmienna będzie sprawdzana pod kątem poprawności. Zła konfiguracja może spowodować awarię roli!
Role to deploy one or multiple django sites using apache2 to host them
ansible-galaxy install ansibleguy.infra_django_apache