bbatsche.Python
Ansible Python Site Rolle
Diese Rolle erstellt eine Seite in Nginx zum Ausführen von Anwendungen, die in Python geschrieben sind. Sie unterstützt sowohl Python 2 als auch 3.
Anforderungen
Diese Rolle nutzt die Linux-Dateisystem-ACLs und eine Gruppe namens "web-admin", um den Zugriff auf bestimmte Verzeichnisse zu gewähren. Sie können diese Schritte entweder manuell konfigurieren oder die Rolle bbatsche.Base
installieren.
Rollenvariablen
domain
— Domain der zu erstellenden Seite.python_version
— Python-Version, die für diese Seite verwendet werden soll. Standard ist "3".env_name
— Ob dieser Server ein "Entwicklungs-", "Produktions-" oder ein anderer Typ von Server ist. Entwicklungsserver verwenden die globalen Python-Binärdateien und -Pakete, andere Typen verwenden eine virtualenv-Einrichtung im Verzeichnis der Seite. Der Standardwert ist "dev".copy_wsgi
— Ob eine stub passenger_wsgi.py-Datei in die Seite kopiert werden soll, nützlich für Tests. Standard ist nein.http_root
— Verzeichnis, in dem alle Verzeichnis für die Seite erstellt werden. Standard ist "/srv/http".nginx_configs
— Zusätzliche Konfigurationsdateien, die am Ende desserver
-Blocks der Domain hinzugefügt werden. Diese Dateien sollten nach/etc/nginx/conf.d
kopiert werden. Der Standardwert ist die Python-Konfiguration der Domain:[ python-{{ domain }}.conf ]
.
Abhängigkeiten
Diese Rolle hängt von bbatsche.Nginx ab. Sie müssen diese Rolle zuerst mit folgendem Befehl installieren:
ansible-galaxy install bbatsche.Nginx
Beispiel-Playbook
- hosts: servers
roles:
- { role: bbatsche.Python, domain: my-python-site.dev }
Lizenz
MIT
Testing
In dieser Rolle ist eine Sammlung von Spezifikationen enthalten, um jede Aufgabe einzeln oder insgesamt zu testen. Um diese Tests auszuführen, müssen Sie zuerst Vagrant und VirtualBox installiert haben. Die Spezifikationsdateien sind mit Serverspec geschrieben, daher benötigen Sie Ruby und Bundler.
Um die vollständige Reihe von Spezifikationen auszuführen:
$ gem install bundler
$ bundle install
$ rake
Die Spezifikationsreihe wird Ubuntu Trusty Tahr (14.04), Xenial Xerus (16.04) und Bionic Beavers (18.04) testen.
Um die verfügbaren Rake-Aufgaben (und Specs) anzuzeigen:
$ rake -T
Diese Spezifikationen sind nicht dazu gedacht, die Idempotenz zu testen. Sie sollen überprüfen, ob die angegebenen Aufgaben ihre erwarteten Schritte ausführen. Die Idempotenz wird unabhängig durch Integrationstests getestet.
Create an Nginx site running either Python 2.7 or 3.4 through Phusion Passenger
ansible-galaxy install bbatsche.Python