hypebeast.flaskapp
ansible-flaskapp
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
ibower 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:
Provisioning and deploy Flask applications
ansible-galaxy install hypebeast.flaskapp