hypebeast.flaskapp

ansible-flaskapp

ビルドステータス

FlaskアプリケーションのプロビジョニングとデプロイのためのAnsibleロールです。

特徴

  • Flaskアプリケーションのプロビジョニングとデプロイのためのタスクを提供します。
  • 必要なアプリケーションと要件を持つサーバーをプロビジョニングします。
  • Flaskアプリケーションを簡単にデプロイします。
  • gitを使用してアプリケーションをチェックアウトします。
  • Nginxをリバースプロキシとして使用します。
  • Supervisorをプロセスマネージャとして使用します。
  • Gunicornを使用してFlaskアプリケーションを実行します(カスタムスタートスクリプトを提供することで上書き可能)。
  • 必要に応じてPostgresqlを設定し、データベースとユーザーを作成します(オプション)。
  • カスタムのインストール前後フックを実行します。
  • 必要に応じてnpmとbowerをインストールします。
  • デプロイ中にnpm installbower installを実行します(オプション)。

インストール

ansible-galaxy

ansible-flaskappはAnsible Galaxyを使用してグローバルに配布されているAnsibleロールです。下記のコマンドでansible-flaskappロールをインストールできます。

$ ansible-galaxy install hypebeast.flaskapp

手動

あるいは、ロールフォルダーにリポジトリを直接クローンします:

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

ansible-galaxyでインストール

最初にロールをインストールします。

ansible-galaxy install hypebeast.flaskapp

プレイブックにロールを追加

ansible-flaskappロールをplaybookに追加します:

- 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:

# `npm`を介して`nodejs`と必要なパッケージ依存関係をインストールしますか?
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/"

# カスタムnginx設定を使用したい場合はtrueに設定してください(自分でプロビジョニングする必要があります)
flaskapp_use_custom_nginx_conf: false

# カスタムsupervisor設定を使用したい場合はtrueに設定してください(自分でプロビジョニングする必要があります)
flaskapp_use_custom_supervisor_conf: false

# カスタムスタートアップスクリプトを使用したい場合はtrueに設定してください(自分でプロビジョニングする必要があります)
flaskapp_use_custom_start_script: false

テスト

プロジェクトにはVagrantfileが含まれており、ロールを簡単にテストできるようになっています。

vagrant provisionまたはvagrant up、またはansible-playbook tests/test.yml -i vagrant-inventoryを使用します。

作者

Sebastian Ruml, sebastian@sebastianruml.name

ライセンス

詳細についてはLICENSEファイルを参照してください。

クレジット

以下のプロジェクトの作者に感謝します:

プロジェクトについて

Provisioning and deploy Flask applications

インストール
ansible-galaxy install hypebeast.flaskapp
ライセンス
mit
ダウンロード
192
所有者