hypebeast.flaskapp

ansible-flaskapp

Build Status

Ansible-Rolle zur Bereitstellung und Implementierung von Flask-Anwendungen.

Funktionen

  • Bietet Aufgaben zur Bereitstellung und Implementierung einer Flask-Anwendung.
  • Stellt einen Server mit allen erforderlichen Anwendungen und Anforderungen bereit.
  • Einfaches Bereitstellen Ihrer Flask-Anwendung.
  • Verwenden Sie Git, um die Anwendung auszuchecken.
  • Verwenden Sie Nginx als Reverse-Proxy.
  • Verwenden Sie Supervisor als Prozessmanager.
  • Verwenden Sie Gunicorn, um die Flask-Anwendung auszuführen (kann überschrieben werden, wenn ein benutzerdefiniertes Startskript bereitgestellt wird).
  • Einrichten von PostgreSQL mit der erforderlichen Datenbank und Benutzer (optional).
  • Ausführen benutzerdefinierter Pre- und Post-Installationshooks.
  • Installieren von npm und bower, falls erforderlich.
  • Führen Sie npm install und bower install während der Bereitstellung aus (optional).

Installation

ansible-galaxy

ansible-flaskapp ist eine Ansible-Rolle, die weltweit über Ansible Galaxy verteilt wird. Um die Rolle ansible-flaskapp zu installieren, können Sie den folgenden Befehl verwenden.

$ ansible-galaxy install hypebeast.flaskapp

Manuell

Oder klonen Sie das Repository direkt in Ihren roles-Ordner:

$ git clone https://github.com/hypebeast/ansible-flaskapp-stack flaskapp

Beispiele

Installation mit ansible-galaxy

Zuerst die Rolle installieren

ansible-galaxy install hypebeast.flaskapp

Rolle zu Ihrem Playbook hinzufügen

Fügen Sie die ansible-flaskapp-Rolle zu Ihrem Playbook hinzu:

- hosts: all
  roles:
    - {role: hypebeast.flaskapp,
       tags: [flaskapp-setup,flaskapp-deploy]}

Dies führt die Setup- und Bereitstellungsaufgaben aus.

Wenn Sie nur die Bereitstellungsaufgabe ausführen möchten:

- hosts: all
  roles:
    - {role: hypebeast.flaskapp,
       tags: [flaskapp-deploy]}

Rolle-Variablen einrichten

Passen Sie die Rollenvariablen an (siehe Variablen).

Rollenvariablen

Siehe defaults/main.yml für eine vollständige Liste der verfügbaren Variablen.

# Der Name der Anwendung, wird verwendet, um das Anwendungsverzeichnis zu erstellen, z. B.
# sollte ein Kurzname, klein geschrieben und ohne Leerzeichen sein.
flaskapp_app_name: flaskapp

# Port für die Anwendung
flaskapp_port: 8000

# Der Benutzer, der die Flask-Anwendung ausführt
flaskapp_app_user: www-data

# Das Verzeichnis, in dem der Quellcode der Anwendung aufbewahrt wird.
flaskapp_app_directory: "/opt/{{ flaskapp_app_name }}"

# Das Verzeichnis, in dem die Anwendungsprotokolle aufbewahrt werden.
flaskapp_app_log_directory: "/var/log/{{ flaskapp_app_name }}"

# Der Pfad zu den Anwendungsanforderungen.
flaskapp_app_requirements: "{{ flaskapp_app_directory }}/requirements.txt"

# Das entfernte Git-Repository, aus dem der Anwendungscode abgerufen wird, zum Beispiel:
# [email protected]:hypebeast/flaskapp.git
flaskapp_app_repository: [email protected]:hypebeast/ansible-flaskapp.git

# Die Version des Repositories, die ausgecheckt werden soll. Dies kann ein vollständiger
# 40-Zeichen SHA1-Hash, der Branch oder ein Tagname sein.
flaskapp_app_version: master

# Die Liste der Umgebungsvariablen, die für die Ausführung der meisten Befehle verwendet werden.
flaskapp_app_environment:
  PATH: "{{ flaskapp_app_directory }}/bin:{{ ansible_env.PATH }}"

# Die Liste benutzerdefinierter Befehle, die vor und nach der Bereitstellung ausgeführt werden. Diese Befehle
# verwenden die zuvor definierte Umgebung zur Ausführung.
flaskapp_app_pre_hooks: []
flaskapp_app_post_hooks: []

# Der Pfad zur Anwendungs-Konfiguration, die beim Start der Anwendung verwendet werden soll.
flaskapp_app_config:

# Die Python-Version, die installiert werden soll
flaskapp_python_version: 2.7

# Die Liste der Systempakete, die zum Erstellen/Ausführen der Anwendung erforderlich sind.
flaskapp_app_packages:
  - git
  - python{{ flaskapp_python_version }}
  - build-essential
  - python-dev
  - python-pip
  - python-virtualenv
  - libpq-dev
  - build-essential

# Zusätzliche Systempakete, die von Ihrer Anwendung benötigt werden
flaskapp_additional_app_packages:

# Installieren Sie `nodejs` und die erforderlichen Paketabhängigkeiten über `npm`?
flaskapp_app_requires_npm: false

# Frontend-Paketabhängigkeiten über `bower` installieren?
flaskapp_app_requires_bower: false

# PostgreSQL installieren und konfigurieren
flaskapp_use_postgresql: true

# PostgreSQL-Datenbankbenutzer
flaskapp_postgresql_user: "{{ flaskapp_app_name }}"

# PostgreSQL-Datenbankpasswort
flaskapp_postgresql_password: xxxxx

# PostgreSQL-Datenbank-Tabellenname
flaskapp_postgresql_table: "{{ flaskapp_app_name }}"

# Definiert, ob Migrationen während der Bereitstellung ausgeführt werden sollen
flaskapp_run_migrations: false

# Verzeichnis mit Migrationsskripten
flaskapp_migrations_dir: ../migrations

# Migrationsbefehl
flaskapp_migration_command: python manage.py migrate

# Nginx-Servername
flaskapp_nginx_server_name: "{{ flaskapp_app_name }}.domain.com"

# Verzeichnis mit statischen Dateien, die direkt von Nginx bereitgestellt werden
flaskapp_nginx_static_dir: "{{ flaskapp_app_directory }}/static/"

# Auf true setzen, wenn Sie eine benutzerdefinierte Nginx-Konfiguration verwenden möchten (Sie müssen diese selbst bereitstellen)
flaskapp_use_custom_nginx_conf: false

# Auf true setzen, wenn Sie eine benutzerdefinierte Supervisor-Konfiguration verwenden möchten (Sie müssen diese selbst bereitstellen)
flaskapp_use_custom_supervisor_conf: false

# Auf true setzen, wenn Sie ein benutzerdefiniertes Startskript verwenden möchten, das von Supervisor verwendet wird (Sie müssen dies selbst bereitstellen)
flaskapp_use_custom_start_script: false

Testen

Das Projekt kommt mit einer Vagrantfile, die es einfach macht, die Rolle zu testen.

Verwenden Sie vagrant provision/vagrant up oder ansible-playbook tests/test.yml -i vagrant-inventory.

Autor

Sebastian Ruml, sebastian@sebastianruml.name

Lizenz

Siehe die LICENSE Datei für Details.

Danksagungen

Danksagungen gehen an die Autoren der folgenden Projekte:

Über das Projekt

Provisioning and deploy Flask applications

Installieren
ansible-galaxy install hypebeast.flaskapp
Lizenz
mit
Downloads
192
Besitzer