cchurch.uwsgi

uWSGI

Installieren Sie uWSGI im Kaiser-Modus und konfigurieren Sie Vassalen. Benötigt Ansible 2.4 oder höher.

Rollenvariablen

HINWEIS: Einige Variablennamen haben sich seit den Versionen 0.2.x geändert!

Die folgenden Variablen werden typischerweise definiert, um diese Rolle anzupassen:

  • uwsgi_install: Methode zur Installation von uWSGI; kann "pkg" (Standard) sein, um den Paketmanager des Systems zu verwenden, oder "pip", um es über pip zu installieren. Jeder andere Wert geht davon aus, dass uWSGI auf andere Weise installiert ist.
  • uwsgi_version: Wenn uwsgi_install == "pip" angegeben, eine Version von uWSGI zur Installation spezifizieren. Standard ist, die neueste verfügbare Version zu installieren.
  • uwsgi_virtualenv: Wenn uwsgi_install == "pip" installiert, wird uWSGI im angegebenen Virtualenv-Pfad installiert.
  • uwsgi_vassals: Erstellen Sie INI-Konfigurationsdateien für alle angegebenen Vassalen. Muss eine Liste von Hashes sein, wobei jeder Hash mindestens einen name-Schlüssel zur Angabe des Dateinamens hat. Alle Schlüssel und Werte werden in der INI-Datei unter dem Abschnitt [uwsgi] geschrieben. Standard ist [].
  • uwsgi_vassals_to_remove: Liste von Vassalnamen, die entfernt werden sollen; Standard ist [].

Die folgenden Variablen können verwendet werden, um die Konfiguration und die Pfade, die für den uWSGI-Kaiser verwendet werden, anzupassen:

  • uwsgi_emperor_tyrant: Führen Sie den Kaiser im Tyrannenmodus aus. Jede Vassal-Konfigurationsdatei wird von der im Vassal-Wahl angegebenen uid/gid besessen und als dieser Benutzer anstelle des Kaiserbenutzers ausgeführt. Standard ist true, wenn uwsgi_install == "pip"; andernfalls false.
  • uwsgi_conf_template: Lokale Vorlage zur Erstellung der uWSGI-Kaiser-Konfiguration. Standard ist eingestellt von uwsgi_default_conf_templates[ansible_pkg_mgr], was auf EL-Distributionen zu "uwsgi.ini.j2" und auf Ubuntu-Distributionen zu "emperor.ini.j2" auswertet.
  • uwsgi_conf_path: Pfad zur uWSGI-Kaiser-Konfigurationsdatei. Standard setzt sich von uwsgi_default_conf_paths[ansible_pkg_mgr], was auf EL-Distributionen zu "/etc/uwsgi.ini" und auf Ubuntu-Distributionen zu "/etc/uwsgi-emperor/emperor.ini" auswertet.
  • uwsgi_conf_force: Ob das Überschreiben der uWSGI-Kaiser-Konfigurationsdatei erzwungen werden soll. Standard ist false, um die Datei nur zu erstellen, wenn sie noch nicht existiert.
  • uwsgi_vassal_path: Pfad, in dem der uWSGI-Kaiser nach Vassal-Konfigurationsdateien sucht. Standard wird von uwsgi_default_vassal_paths[ansible_pkg_mgr] gesetzt, was auf EL-Distributionen zu "/etc/uwsgi.d" und auf Ubuntu-Distributionen zu "/etc/uwsgi-emperor/vassals" auswertet.

Die folgenden Variablen können verwendet werden, um die installierten Pakete zur Unterstützung von uWSGI anzupassen:

  • uwsgi_os_packages: Liste der Systempakete, die installiert werden sollen, um uWSGI zu unterstützen. Standard setzt sich von uwsgi_default_os_packages[uwsgi_install][ansible_pkg_mgr], das Systempakete bei uwsgi_install == "pkg" installiert und Python-Entwicklungsabhängigkeiten bei uwsgi_install == "pip".
  • uwsgi_pip_packages: Liste der pip-Pakete, die installiert werden sollen, um uWSGI zu unterstützen, wenn uwsgi_install == "pip". Standard wird von uwsgi_default_pip_packages gesetzt, was zu ["uwsgi"] auswertet.
  • uwsgi_pip_executable: Alternativer Name oder Pfad von pip, der verwendet wird, um Pakete zu installieren, wenn uwsgi_install == "pip" und nicht in ein Virtualenv installiert wird. Standardmäßig wird der pip-Modul bestimmt, welches pip-Executable verwendet werden soll.

Die folgenden Variablen können verwendet werden, um die Dienstkonfiguration anzupassen, wenn uWSGI nicht über den Systempaketmanager installiert wird und über Upstart oder systemd verwaltet wird:

  • uwsgi_user_group: Benutzer-/Gruppeninformationen zum Ausführen des uWSGI-Kaisers. Standard setzt sich von uwsgi_default_user_group[ansible_pkg_mgr], das den Systembenutzer und die Gruppe "uwsgi:uwsgi" auf EL-Distributionen und "www-data:www-data" auf Ubuntu-Distributionen erstellt, genauso wie sie von der Systempaketversion von uWSGI verwendet werden würden. Der Benutzer/Gruppen-Hash kann name, comment, group, home, shell und system-Schlüssel enthalten, die den entsprechenden Parametern im Ansible user-Modul entsprechen.
  • uwsgi_service_name: Name des uWSGI-Dienstes. Standard wird von uwsgi_default_service_names[ansible_pkg_mgr] gesetzt, das auf EL-Distributionen zu "uwsgi" und auf Ubuntu-Distributionen zu "uwsgi-emperor" auswertet.
  • uwsgi_bin: Pfad zur verwendeten uWSGI-Binärdatei für die Upstart- oder Systemd-Konfiguration; wird automatisch bestimmt, wenn nicht angegeben.
  • uwsgi_opts: Befehlszeilenoptionen, die beim Ausführen von uWSGI über Upstart oder systemd verwendet werden; standardmäßig werden die in der uWSGI-Konfigurationsdatei angegebenen Optionen ausgeführt: "--die-on-term --ini {{uwsgi_conf_path|quote}}".
  • uwsgi_use_upstart: Boolean, der angibt, ob Upstart verwendet werden soll, um den uWSGI-Dienst zu erstellen und zu verwalten. Standardmäßig undefiniert und wird nur aktiviert, wenn uWSGI nicht über den Systempaketmanager auf Distributionen außer EL 7 installiert ist. Kann auf false gesetzt werden, um die Verwendung von Upstart zur Verwaltung des uWSGI-Dienstes ausdrücklich zu deaktivieren.
  • uwsgi_upstart_packages: Liste der Systempakete, die installiert werden sollen, um uWSGI über Upstart auszuführen. Standard wird von uwsgi_default_upstart_packages[ansible_pkg_mgr] gesetzt, das einfach das upstart-Paket installiert.
  • uwsgi_upstart_description: Beschreibung für den uWSGI-Upstart-Dienst; Standard ist "uWSGI Server".
  • uwsgi_upstart_template: Lokale Vorlage zur Erstellung der Upstart-uWSGI-Konfiguration; Standard ist "uwsgi-upstart.conf.j2".
  • uwsgi_upstart_path: Pfad zur Installation der Upstart-uWSGI-Konfiguration; Standard ist "/etc/init/{{_uwsgi_service_name}}.conf".
  • uwsgi_use_systemd: Boolean, der angibt, ob systemd verwendet werden soll, um den uWSGI-Dienst zu erstellen und zu verwalten. Standardmäßig undefiniert und wird nur aktiviert, wenn uWSGI nicht über den Systempaketmanager auf EL 7-Distributionen installiert ist. Kann auf false gesetzt werden, um die Verwendung von systemd zur Verwaltung des uWSGI-Dienstes ausdrücklich zu deaktivieren.
  • uwsgi_systemd_template: Lokale Vorlage zur Erstellung des systemd-uWSGI-Dienstes; Standard ist "uwsgi.service.j2".
  • uwsgi_systemd_path: Pfad zur Installation des System-uWSGI-Servers; Standard ist "/etc/systemd/system/{{_uwsgi_service_name}}.service".

Beispiel-Playbook

Das folgende Beispiel-Playbook installiert uWSGI über pip und konfiguriert einen einzelnen Vassalen, der eine Django-Website ausführt:

    - hosts: all
      roles:
        - role: cchurch.uwsgi
          vars:
            uwsgi_install: pip
            uwsgi_vassals:
              - name: example
                plugin: python
                chdir: /opt/example/src
                module: example.wsgi
                home: /opt/example/env
                env: DJANGO_SETTINGS_MODULE=example.settings
                processes: 4
                socket: 127.0.0.1:8000
                uid: example
                gid: example

Lizenz

BSD

Autoreninformation

Chris Church (cchurch)

Über das Projekt

Install uWSGI in emperor mode and configure vassals.

Installieren
ansible-galaxy install cchurch.uwsgi
GitHub Repository
Lizenz
other
Downloads
4.8k
Besitzer
Python/Django/Ansible, will code for sweet tea and beer.