bbatsche.Python
Ansible Python Site Role
Ta rola utworzy witrynę w Nginx do uruchamiania aplikacji napisanych w Pythonie. Obsługuje zarówno Pythona 2, jak i 3.
Wymagania
Ta rola korzysta z ACL w systemie plików Linux oraz grupy o nazwie "web-admin" do przyznawania dostępu do określonych katalogów. Możesz skonfigurować te kroki ręcznie lub zainstalować rolę bbatsche.Base
.
Zmienne roli
domain
— Domenę witryny, która ma zostać utworzona.python_version
— Wersja Pythona do użycia w tej witrynie. Domyślnie "3".env_name
— Typ serwera: "development" (deweloperski), "production" (produkcyjny) lub inny. Serwery deweloperskie będą korzystały z globalnych binari i pakietów Pythona, inne typy użyją ustawienia virtualenv w katalogu witryny. Domyślnie "dev".copy_wsgi
— Czy skopiować plik wzorcowy passenger_wsgi.py do witryny, przydatne do testowania. Domyślnie nie.http_root
— Katalog, w którym będą tworzone wszystkie katalogi witryny. Domyślnie "/srv/http".nginx_configs
— Dodatkowe pliki konfiguracyjne do dodania na końcu blokuserver
domeny. Te pliki powinny być skopiowane do/etc/nginx/conf.d
. Domyślnie konfiguracyjny plik Pythona dla domeny:[ python-{{ domain }}.conf ]
.
Zależności
Ta rola zależy od bbatsche.Nginx. Musisz najpierw zainstalować tę rolę, używając:
ansible-galaxy install bbatsche.Nginx
Przykładowy Playbook
- hosts: servers
roles:
- { role: bbatsche.Python, domain: my-python-site.dev }
Licencja
MIT
Testowanie
W tej roli znajduje się zestaw specyfikacji do testowania każdego zadania indywidualnie lub jako całość. Aby uruchomić te testy, musisz mieć zainstalowane Vagrant i VirtualBox. Pliki specyfikacji są napisane przy użyciu Serverspec, więc będziesz potrzebować Ruby oraz Bundlera.
Aby uruchomić cały zestaw specyfikacji:
$ gem install bundler
$ bundle install
$ rake
Zestaw specyfikacji będzie testował Ubuntu Trusty Tahr (14.04), Xenial Xerus (16.04) i Bionic Beaver (18.04).
Aby zobaczyć dostępne zadania rake (i specyfikacje):
$ rake -T
Te specyfikacje nie są przeznaczone do testowania idempotencji. Służą do sprawdzania, czy określone zadania wykonują oczekiwane kroki. Idempotencję testuje się niezależnie poprzez testy integracyjne.
Create an Nginx site running either Python 2.7 or 3.4 through Phusion Passenger
ansible-galaxy install bbatsche.Python