ansibleguy.infra_django_apache

Logo Django

Rola Ansible - Python3 Django

Rola Ansible do wdrażania jednej lub wielu aplikacji Django na serwerze Linux przy użyciu Apache2 jako serwera www.

Kup mi kawę

Status testów Molecule Status testów YamlLint Status testów PyLint Status testów Ansible-Lint Ansible Galaxy

Logi Molecule: Krótkie, Pełne

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!

O projekcie

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

Zainstaluj
ansible-galaxy install ansibleguy.infra_django_apache
Licencja
other
Pobrania
1.9k
Właściciel
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg