hypebeast.flaskapp

ansible-flaskapp

État de la construction

Rôle Ansible pour la mise en provision et le déploiement d'applications Flask.

Caractéristiques

  • Fournit des tâches pour la mise en provision et le déploiement d'une application Flask.
  • Met en place un serveur avec toutes les applications et exigences requises.
  • Déployez facilement votre application Flask.
  • Utilisez git pour récupérer l'application.
  • Utilisez Nginx comme proxy inverse.
  • Utilisez Supervisor comme gestionnaire de processus.
  • Utilisez Gunicorn pour exécuter l'application Flask (peut être remplacé si un script de démarrage personnalisé est fourni).
  • Configurez Postgresql avec la base de données et l'utilisateur requis (facultatif).
  • Exécutez des hooks d'installation personnalisés avant et après l'installation.
  • Installez npm et bower si nécessaire.
  • Exécutez npm install et bower install lors du déploiement (facultatif).

Installation

ansible-galaxy

ansible-flaskapp est un rôle Ansible distribué mondialement via Ansible Galaxy. Pour installer le rôle ansible-flaskapp, vous pouvez utiliser la commande suivante.

$ ansible-galaxy install hypebeast.flaskapp

Manuellement

Ou clonez directement le dépôt dans votre dossier de rôles :

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

Exemples

Installation avec ansible-galaxy

Tout d'abord, installez le rôle

ansible-galaxy install hypebeast.flaskapp

Ajoutez le rôle à votre playbook

Ajoutez le rôle ansible-flaskapp à votre playbook :

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

Cela exécute les tâches de configuration et de déploiement.

Si vous souhaitez exécuter uniquement la tâche de déploiement :

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

Configurez les variables du rôle

Personnalisez les variables du rôle (voir les variables du rôle).

Variables du rôle

Voir defaults/main.yml pour une liste complète des variables disponibles.

# Le nom de l'application, utilisé pour créer le répertoire de l'application, par exemple.
# Cela doit être une abréviation, en minuscules et ne doit pas contenir d'espaces.
flaskapp_app_name: flaskapp

# Port pour l'application
flaskapp_port: 8000

# L'utilisateur utilisé pour exécuter l'application Flask
flaskapp_app_user: www-data

# Le répertoire pour garder le code source de l'application.
flaskapp_app_directory: "/opt/{{ flaskapp_app_name }}"

# Le répertoire pour garder les journaux de l'application.
flaskapp_app_log_directory: "/var/log/{{ flaskapp_app_name }}"

# Le chemin vers les exigences de l'application.
flaskapp_app_requirements: "{{ flaskapp_app_directory }}/requirements.txt"

# Le dépôt git distant à partir duquel récupérer le code de l'application, par exemple :
# [email protected]:hypebeast/flaskapp.git
flaskapp_app_repository: [email protected]:hypebeast/ansible-flaskapp.git

# La version du dépôt à récupérer. Cela peut être un hash SHA1 de 40 caractères, une branche ou un nom de tag.
flaskapp_app_version: master

# La liste des variables d'environnement à utiliser pour exécuter la plupart des commandes.
flaskapp_app_environment:
  PATH: "{{ flaskapp_app_directory }}/bin:{{ ansible_env.PATH }}"

# La liste des commandes personnalisées à exécuter avant et après le déploiement. Ces commandes
# utilisent l'environnement défini précédemment pour s'exécuter.
flaskapp_app_pre_hooks: []
flaskapp_app_post_hooks: []

# Le chemin vers la configuration de l'application à utiliser lors du lancement de l'application.
flaskapp_app_config:

# La version de Python qui doit être installée
flaskapp_python_version: 2.7

# La liste des paquets système requis pour construire/exécuter l'application.
flaskapp_app_packages:
  - git
  - python{{ flaskapp_python_version }}
  - build-essential
  - python-dev
  - python-pip
  - python-virtualenv
  - libpq-dev
  - build-essential

# Paquets système supplémentaires requis par votre application
flaskapp_additional_app_packages:

# Installer `nodejs` et les dépendances de paquets requises via `npm` ?
flaskapp_app_requires_npm: false

# Installer les dépendances de paquets front-end via `bower` ?
flaskapp_app_requires_bower: false

# Installer et configurer Postgresql
flaskapp_use_postgresql: true

# Utilisateur de la base de données Postgresql
flaskapp_postgresql_user: "{{ flaskapp_app_name }}"

# Mot de passe de la base de données Postgresql
flaskapp_postgresql_password: xxxxx

# Nom de la table de la base de données Postgresql
flaskapp_postgresql_table: "{{ flaskapp_app_name }}"

# Définit si des migrations doivent être exécutées lors du déploiement
flaskapp_run_migrations: false

# Répertoire avec les scripts de migration
flaskapp_migrations_dir: ../migrations

# Commande de migration
flaskapp_migration_command: python manage.py migrate

# Nom du serveur Nginx
flaskapp_nginx_server_name: "{{ flaskapp_app_name }}.domain.com"

# Répertoire avec les fichiers statiques servis directement par Nginx
flaskapp_nginx_static_dir: "{{ flaskapp_app_directory }}/static/"

# Mettre à true si vous voulez utiliser une configuration nginx personnalisée (vous devez la provisionner vous-même)
flaskapp_use_custom_nginx_conf: false

# Mettre à true si vous voulez utiliser une configuration supervisor personnalisée (vous devez la provisionner vous-même)
flaskapp_use_custom_supervisor_conf: false

# Mettre à true si vous voulez utiliser un script de démarrage personnalisé utilisé par supervisor (vous devez la provisionner vous-même)
flaskapp_use_custom_start_script: false

Tests

Le projet vient avec un Vagrantfile qui permet de tester facilement le rôle.

Utilisez vagrant provision/vagrant up ou ansible-playbook tests/test.yml -i vagrant-inventory.

Auteur

Sebastian Ruml, sebastian@sebastianruml.name

Licence

Voir le fichier LICENSE pour plus de détails.

Remerciements

Remerciements aux auteurs des projets suivants :

À propos du projet

Provisioning and deploy Flask applications

Installer
ansible-galaxy install hypebeast.flaskapp
Licence
mit
Téléchargements
192
Propriétaire