ansibleguy.infra_django_apache
<a href="https://www.djangoproject.com">
<img src="https://static.djangoproject.com/img/logos/django-logo-negative.svg" alt="Django Logo" width="300"/>
</a>
# Ansible Rolle - Python3 Django
Ansible Rolle zum Bereitstellen einer oder mehrerer Django-Anwendungen auf einem Linux-Server unter Verwendung von Apache2 als Webserver.
<a href='https://ko-fi.com/ansible0guy' target='_blank'><img height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Kauf mir einen Kaffee' />
[](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/molecule.sh.j2)
[](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/yamllint.sh.j2)
[](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/pylint.sh.j2)
[](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/ansiblelint.sh.j2)
[](https://galaxy.ansible.com/ui/standalone/roles/ansibleguy/infra_django_apache)
Molecule-Logs: [Kurz](https://badges.ansibleguy.net/log/molecule_infra_django_apache_test_short.log), [Voll](https://badges.ansibleguy.net/log/molecule_infra_django_apache_test.log)
**Getestet:**
* Debian 11
## Installation
```bash
# neueste Version
ansible-galaxy role install git+https://github.com/ansibleguy/infra_django_apache
# von Galaxy
ansible-galaxy install ansibleguy.infra_django_apache
# oder zum benutzerdefinierten Rollen-Pfad
ansible-galaxy install ansibleguy.infra_django_apache --roles-path ./roles
# Abhängigkeiten installieren
ansible-galaxy install -r requirements.yml
Nutzung
Möchten Sie eine einfache Ansible-GUI? Schauen Sie sich meine Ansible WebUI an.
Konfiguration
Sie müssen Ihre Instanzen definieren, indem Sie das 'mariadb'-Wörterbuch konfigurieren!
django:
sites:
niceApp:
domain: 'django.ansibleguy.net'
project: 'super' # das Verzeichnis, das die 'settings.py' enthält, trägt diesen Namen
sync_code: # synchronisiert lokalen Code mit dem Remote-Server
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'] # wird zur PYTHONPATH-Umgebungsvariable von Django hinzugefügt
ssl:
mode: 'letsencrypt'
letsencrypt:
email: '[email protected]'
Vielleicht möchten Sie 'ansible-vault' verwenden, um Ihre Passwörter zu verschlüsseln:
ansible-vault encrypt_string
Ausführung
Führen Sie das Playbook/die Rolle aus:
ansible-playbook -K -D -i inventory/hosts.yml django.yml --ask-vault-pass
Es gibt auch einige nützliche Tags:
- base => nur die Grundlagen konfigurieren; Instanzen werden nicht berührt
- sites
- config
- db
- sync => nur lokalen Code mit dem Remote-Host synchronisieren (wenn vom Benutzer aktiviert)
- django => keine Unterrollen für Apache und/oder MariaDB starten
Um Fehler zu debuggen - können Sie die 'debug'-Variable zur Laufzeit setzen:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
Funktionalität
Paketinstallation
- Ansible-Abhängigkeiten (minimal)
Konfiguration
Apache unter Verwendung der DIESEN Rolle
Unterstützung für MySQL oder PostgreSQL
Standard-Opt-in:
- MariaDB-Datenbank unter Verwendung der DIESEN Rolle
Standard-Opt-outs:
- Datenbanksicherungsdienst
- Besondere Apache-Konfiguration => kann über das 'django'-Wörterbuch übergeben werden
- Ausführen von 'collectstatic'
Standardkonfiguration:
- Es wird ein selbstsigniertes Zertifikat verwendet
- Datenbanktyp => MariaDB
- Datenbank wird automatisch installiert
- Verwendung einer Python-virtuellen Umgebung
- Ein Datenbank-Migrationsskript wird im venv-Verzeichnis erstellt
Info
Hinweis: Diese Rolle unterstützt derzeit nur Debian-basierte Systeme
Hinweis: Die meisten Funktionen der Rolle können aktiviert oder deaktiviert werden.
Für alle verfügbaren Optionen - siehe die Standardkonfiguration im Haupt-/Site-Standarddatei!
Warnung: Nicht jede Einstellung/Variable, die Sie bereitstellen, wird auf Gültigkeit überprüft. Falsche Konfiguration kann die Rolle beschädigen!
```
Role to deploy one or multiple django sites using apache2 to host them
ansible-galaxy install ansibleguy.infra_django_apache