flaskapp

ansible-flaskapp

Статус сборки

Роль Ansible дляProvisioning и развертывания приложений Flask.

Особенности

  • Предоставляет задачи дляProvisioning и развертывания приложения Flask.
  • Устанавливает сервер со всеми необходимыми приложениями и зависимостями.
  • Легко развернуть ваше приложение Flask.
  • Используйте git для загрузки приложения.
  • Используйте Nginx в качестве реверс-прокси.
  • Используйте Supervisor в качестве менеджера процессов.
  • Используйте Gunicorn для запуска приложения Flask (можно переопределить, если предоставлен пользовательский скрипт запуска).
  • Настройте PostgreSQL с требуемой базой данных и пользователем (необязательно).
  • Запускайте пользовательские хуки до и после установки.
  • Установите npm и bower при необходимости.
  • Запустите npm install и bower install во время развертывания (необязательно).

Установка

ansible-galaxy

ansible-flaskapp — это роль Ansible, распространяемая глобально с помощью Ansible Galaxy. Для установки роли ansible-flaskapp вы можете использовать следующую команду.

$ ansible-galaxy install hypebeast.flaskapp

Вручную

Или непосредственно клонируйте репозиторий в вашу папку roles:

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

Примеры

Установка с ansible-galaxy

Сначала установите роль.

ansible-galaxy install hypebeast.flaskapp

Добавьте роль в ваш плейбук

Добавьте роль ansible-flaskapp в ваш плейбук:

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

Это выполнит задачи настройки и развертывания.

Если вы хотите запустить только задачу развертывания:

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

Настройте переменные роли

Настройте переменные роли (см. переменные роли).

Переменные роли

См. defaults/main.yml для полного списка доступных переменных.

# Имя приложения, используется для создания директории приложения, например:
# должно быть коротким, строчными буквами и не содержать пробелов.
flaskapp_app_name: flaskapp

# Порт для приложения
flaskapp_port: 8000

# Пользователь, используемый для запуска приложения Flask
flaskapp_app_user: www-data

# Директория для хранения исходного кода приложения.
flaskapp_app_directory: "/opt/{{ flaskapp_app_name }}"

# Директория для хранения логов приложения.
flaskapp_app_log_directory: "/var/log/{{ flaskapp_app_name }}"

# Путь к требованиям приложения.
flaskapp_app_requirements: "{{ flaskapp_app_directory }}/requirements.txt"

# Удаленный репозиторий git для загрузки кода приложения, например:
# [email protected]:hypebeast/flaskapp.git
flaskapp_app_repository: [email protected]:hypebeast/ansible-flaskapp.git

# Версия репозитория для загрузки. Это может быть полный
# 40-символьный хэш SHA1, ветка или имя тега.
flaskapp_app_version: master

# Список переменных окружения, используемых для выполнения большинства команд.
flaskapp_app_environment:
  PATH: "{{ flaskapp_app_directory }}/bin:{{ ansible_env.PATH }}"

# Список пользовательских команд, которые нужно выполнить перед и после развертывания. Эти команды
# используют ранее определенное окружение для выполнения.
flaskapp_app_pre_hooks: []
flaskapp_app_post_hooks: []

# Путь к конфигурации приложения для использования при запуске приложения.
flaskapp_app_config:

# Версия Python, которую следует установить
flaskapp_python_version: 2.7

# Список системных пакетов, необходимых для сборки/работы приложения.
flaskapp_app_packages:
  - git
  - python{{ flaskapp_python_version }}
  - build-essential
  - python-dev
  - python-pip
  - python-virtualenv
  - libpq-dev
  - build-essential

# Дополнительные системные пакеты, необходимые для вашего приложения
flaskapp_additional_app_packages:

# Установить `nodejs` и необходимые зависимости пакетов через `npm`?
flaskapp_app_requires_npm: false

# Установить зависимости пакетов фронтенда через `bower`?
flaskapp_app_requires_bower: false

# Установить и настроить PostgreSQL
flaskapp_use_postgresql: true

# Пользователь базы данных PostgreSQL
flaskapp_postgresql_user: "{{ flaskapp_app_name }}"

# Пароль базы данных PostgreSQL
flaskapp_postgresql_password: xxxxx

# Имя таблицы базы данных PostgreSQL
flaskapp_postgresql_table: "{{ flaskapp_app_name }}"

# Определяет, должны ли миграции выполняться во время развертывания
flaskapp_run_migrations: false

# Директория с миграционными скриптами
flaskapp_migrations_dir: ../migrations

# Команда миграции
flaskapp_migration_command: python manage.py migrate

# Имя сервера Nginx
flaskapp_nginx_server_name: "{{ flaskapp_app_name }}.domain.com"

# Директория со статическими файлами, которые обслуживаются непосредственно Nginx
flaskapp_nginx_static_dir: "{{ flaskapp_app_directory }}/static/"

# Установите true, если хотите использовать пользовательскую конфигурацию nginx (вы должны сами ее настроить)
flaskapp_use_custom_nginx_conf: false

# Установите true, если хотите использовать пользовательскую конфигурацию supervisor (вы должны сами ее настроить)
flaskapp_use_custom_supervisor_conf: false

# Установите true, если хотите использовать пользовательский скрипт запуска, используемый supervisor (вы должны сами его настроить)
flaskapp_use_custom_start_script: false

Тестирование

Проект включает Vagrantfile, который позволяет легко тестировать роль.

Используйте vagrant provision/vagrant up или ansible-playbook tests/test.yml -i vagrant-inventory.

Автор

Себастьян Румль, sebastian@sebastianruml.name

Лицензия

Смотрите файл LICENSE для получения подробной информации.

Благодарности

Благодарности авторам следующих проектов:

О проекте

Provisioning and deploy Flask applications

Установить
ansible-galaxy install hypebeast/ansible-flask-stack
Лицензия
mit
Загрузки
172
Владелец