Python
Роль Ansible Python Site
Эта роль создаст сайт в Nginx для запуска приложений, написанных на Python. Она поддерживает Python версии 2 или 3.
Требования
Эта роль использует ACL файловой системы Linux и группу под названием "web-admin" для предоставления доступа к определенным директориям. Вы можете настроить эти шаги вручную или установить роль bbatsche.Base
.
Переменные роли
domain
— Домен сайта, который необходимо создать.python_version
— Версия Python, которую следует использовать на сайте. По умолчанию "3".env_name
— Тип сервера: "development", "production" или другой. Серверы разработки будут использовать глобальные бинарные файлы и пакеты Python, другие типы будут использовать настройку virtualenv в каталоге сайта. По умолчанию "dev".copy_wsgi
— Нужно ли скопировать шаблонный файл passenger_wsgi.py на сайт для тестирования. По умолчанию нет.http_root
— Каталог, в котором будут созданы все директории сайта. По умолчанию "/srv/http".nginx_configs
— Дополнительные конфигурационные файлы, которые нужно добавить в конец блокаserver
домена. Эти файлы должны быть скопированы в/etc/nginx/conf.d
. По умолчанию используется конфигурация Python для домена:[ python-{{ domain }}.conf ]
.
Зависимости
Эта роль зависит от bbatsche.Nginx. Сначала нужно установить эту роль с помощью:
ansible-galaxy install bbatsche.Nginx
Пример плейбука
- hosts: servers
roles:
- { role: bbatsche.Python, domain: my-python-site.dev }
Лицензия
MIT
Тестирование
В комплект этой роли входит набор спецификаций для тестирования каждой задачи индивидуально или целиком. Чтобы запустить эти тесты, вам сначала нужно установить Vagrant и VirtualBox. Спецификации написаны с использованием Serverspec, поэтому вам понадобятся Ruby и Bundler.
Чтобы запустить полный набор спецификаций:
$ gem install bundler
$ bundle install
$ rake
Набор спецификаций будет протестирован на Ubuntu Trusty Tahr (14.04), Xenial Xerus (16.04) и Bionic Beaver (18.04).
Чтобы увидеть доступные задачи rake (и спецификации):
$ rake -T
Эти спецификации не предназначены для проверки идемпотентности. Они предназначены для того, чтобы проверить, что указанные задачи выполняют ожидаемые шаги. Идемпотентность проверяется отдельно путем интеграционного тестирования.
Create an Nginx site running either Python 2.7 or 3.4 through Phusion Passenger
ansible-galaxy install bbatsche/Ansible-Python-Site-Role