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' />

[![Molecule Test Status](https://badges.ansibleguy.net/infra_django_apache.molecule.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/molecule.sh.j2)
[![YamlLint Test Status](https://badges.ansibleguy.net/infra_django_apache.yamllint.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/yamllint.sh.j2)
[![PyLint Test Status](https://badges.ansibleguy.net/infra_django_apache.pylint.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/pylint.sh.j2)
[![Ansible-Lint Test Status](https://badges.ansibleguy.net/infra_django_apache.ansiblelint.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/ansiblelint.sh.j2)
[![Ansible Galaxy](https://badges.ansibleguy.net/galaxy.badge.svg)](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!

```

Über das Projekt

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

Installieren
ansible-galaxy install ansibleguy.infra_django_apache
GitHub Repository
Lizenz
other
Downloads
1.9k
Besitzer
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg