hypebeast.flaskapp

ansible-flaskapp

Status budowy

Rola Ansible do uruchamiania i wdrażania aplikacji Flask.

Cechy

  • Zapewnia zadania do uruchamiania i wdrażania aplikacji Flask.
  • Przygotowuje serwer z wszystkimi wymaganymi aplikacjami i zależnościami.
  • Łatwe wdrażanie aplikacji Flask.
  • Używa gita do pobierania aplikacji.
  • Używa Nginx jako proxy odwrotnego.
  • Używa Supervisora jako menedżera procesów.
  • Używa Gunicorn do uruchamiania aplikacji Flask (można zastąpić niestandardowym skryptem startowym).
  • Konfiguruje Postgresql z wymaganymi bazą danych i użytkownikiem (opcjonalnie).
  • Uruchamia niestandardowe skrypty przed i po instalacji.
  • Instaluje npm i bower, jeśli są wymagane.
  • Uruchamia npm install i bower install podczas wdrażania (opcjonalnie).

Instalacja

ansible-galaxy

ansible-flaskapp to rola Ansible dystrybuowana globalnie za pomocą Ansible Galaxy. Aby zainstalować rolę ansible-flaskapp, użyj poniższego polecenia.

$ ansible-galaxy install hypebeast.flaskapp

Ręcznie

Lub bezpośrednio sklonuj repozytorium do folderu roles:

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

Przykłady

Instalacja z ansible-galaxy

Najpierw zainstaluj rolę

ansible-galaxy install hypebeast.flaskapp

Dodaj rolę do swojego playbooka

Dodaj rolę ansible-flaskapp do swojego playbooka:

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

To uruchamia zadania konfiguracji i wdrażania.

Jeśli chcesz uruchomić tylko zadanie wdrażania:

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

Ustaw zmienne roli

Dostosuj zmienne roli (zobacz zmienne roli).

Zmienne roli

Zobacz defaults/main.yml dla pełnej listy dostępnych zmiennych.

# Nazwa aplikacji, używana do tworzenia katalogu aplikacji, np.
# powinna być skrótem, małymi literami i nie zawierać spacji.
flaskapp_app_name: flaskapp

# Port dla aplikacji
flaskapp_port: 8000

# Użytkownik używany do uruchamiania aplikacji Flask
flaskapp_app_user: www-data

# Katalog do przechowywania kodu źródłowego aplikacji.
flaskapp_app_directory: "/opt/{{ flaskapp_app_name }}"

# Katalog do przechowywania logów aplikacji.
flaskapp_app_log_directory: "/var/log/{{ flaskapp_app_name }}"

# Ścieżka do wymagań aplikacji.
flaskapp_app_requirements: "{{ flaskapp_app_directory }}/requirements.txt"

# Zdalne repozytorium git, z którego pobierany jest kod aplikacji, na przykład:
# [email protected]:hypebeast/flaskapp.git
flaskapp_app_repository: [email protected]:hypebeast/ansible-flaskapp.git

# Wersja repozytorium do pobrania. Może to być pełny
# 40-znakowy hash SHA1, gałąź lub nazwa tagu.
flaskapp_app_version: master

# Lista zmiennych środowiskowych używanych do uruchomienia większości poleceń.
flaskapp_app_environment:
  PATH: "{{ flaskapp_app_directory }}/bin:{{ ansible_env.PATH }}"

# Lista niestandardowych poleceń do uruchomienia przed i po wdrożeniu. Te polecenia
# używają wcześniej zdefiniowanego środowiska do uruchomienia.
flaskapp_app_pre_hooks: []
flaskapp_app_post_hooks: []

# Ścieżka do konfiguracji aplikacji używanej podczas uruchamiania aplikacji.
flaskapp_app_config:

# Wersja Pythona, która powinna być zainstalowana
flaskapp_python_version: 2.7

# Lista pakietów systemowych wymaganych do budowy/uruchomienia aplikacji.
flaskapp_app_packages:
  - git
  - python{{ flaskapp_python_version }}
  - build-essential
  - python-dev
  - python-pip
  - python-virtualenv
  - libpq-dev
  - build-essential

# Dodatkowe pakiety systemowe wymagane przez Twoją aplikację
flaskapp_additional_app_packages:

# Zainstalować `nodejs` i wymagane zależności pakietów za pomocą `npm`?
flaskapp_app_requires_npm: false

# Zainstalować zależności pakietów frontendowych za pomocą `bower`?
flaskapp_app_requires_bower: false

# Zainstalować i skonfigurować Postgresql
flaskapp_use_postgresql: true

# Użytkownik bazy danych PostgreSQL
flaskapp_postgresql_user: "{{ flaskapp_app_name }}"

# Hasło do bazy danych PostgreSQL
flaskapp_postgresql_password: xxxxx

# Nazwa tabeli bazy danych PostgreSQL
flaskapp_postgresql_table: "{{ flaskapp_app_name }}"

# Definiuje, czy migracje powinny być uruchomione podczas wdrażania
flaskapp_run_migrations: false

# Katalog z migracjami
flaskapp_migrations_dir: ../migrations

# Polecenie migracji
flaskapp_migration_command: python manage.py migrate

# Nazwa serwera Nginx
flaskapp_nginx_server_name: "{{ flaskapp_app_name }}.domain.com"

# Katalog z plikami statycznymi serwowanymi bezpośrednio przez Nginx
flaskapp_nginx_static_dir: "{{ flaskapp_app_directory }}/static/"

# Ustaw na true, jeśli chcesz używać niestandardowej konfiguracji nginx (musisz to samodzielnie skonfigurować)
flaskapp_use_custom_nginx_conf: false

# Ustaw na true, jeśli chcesz używać niestandardowej konfiguracji supervisora (musisz to samodzielnie skonfigurować)
flaskapp_use_custom_supervisor_conf: false

# Ustaw na true, jeśli chcesz używać niestandardowego skryptu startowego używanego przez supervisora (musisz to samodzielnie skonfigurować)
flaskapp_use_custom_start_script: false

Testowanie

Projekt zawiera plik Vagrantfile, który umożliwia łatwe testowanie roli.

Użyj vagrant provision lub ansible-playbook tests/test.yml -i vagrant-inventory.

Autor

Sebastian Ruml, sebastian@sebastianruml.name

Licencja

Zobacz plik LICENSE dla szczegółów.

Podziękowania

Podziękowania dla autorów następujących projektów:

Zainstaluj
ansible-galaxy install hypebeast.flaskapp
Licencja
mit
Pobrania
192
Właściciel