nginx

Роль Ansible для Nginx Passenger

Статус сборки Лицензия Имя роли Версия релиза Скачивания

Эта роль установит сервер Nginx вместе с Phusion Passenger для обслуживания приложений Node, Python или Ruby. Она также может настроить сайт для указанного домена.

Требования

Эта роль использует ACL файловой системы Linux и группу под названием "web-admin" для предоставления доступа к каталогам конфигурации. Вы можете настроить эти шаги вручную или установить роль bbatsche.Base.

Переменные роли

  • env_name — Указывает, находится ли сервер в "разработке", "производстве" или другом окружении. По умолчанию "dev".
  • http_root — Папка, в которой будут созданы каталоги сайта. По умолчанию "/srv/http".
  • public_directory — Публично видимый каталог сайта, например "public" или "htdocs". По умолчанию "public".
  • max_upload_size — Максимальный размер загружаемого файла в МБ. По умолчанию "10".
  • domain — Имя домена для создаваемого сайта. По умолчанию не задано.
  • content_security_policy — Политика безопасности контента для добавления в домен, формируется как словарь списков или булевых значений. По умолчанию: см. defaults/main.yml.
  • nginx_configs — Дополнительные конфигурационные файлы для добавления в конец блока server домена. Эти файлы должны копироваться в /etc/nginx/conf.d. Добавьте конфигурации для вашего конкретного типа серверного приложения. По умолчанию пустой массив.
  • passenger_app — Является ли текущий домен приложением Passenger (т.е. Node, Ruby, Python)? Полезно, если приложение нужно перезапустить после обновления конфигураций. По умолчанию нет.
  • copy_index — Копировать файл index.html в сайт. По умолчанию нет.
  • use_ssl — Обслуживать ли контент через SSL (на самом деле, TLS). По умолчанию нет.
  • use_letsencrypt — Использовать ли Let's Encrypt для генерации сертификата для сайта. В противном случае будет использован самоподписанный сертификат. По умолчанию нет.
  • privatekey_bits — Количество бит для генерации самоподписанного закрытого ключа. По умолчанию 4096.
  • dhparam_bits — Количество бит для генерации статического сертификата DH. По умолчанию 2048. Значения выше могут занять много времени.
  • cert_valid_days — Количество дней, на которые будет действителен самоподписанный сертификат. По умолчанию 3650 (~1 год).
  • email_address — Адрес электронной почты для самоподписанного сертификата и Let's Encrypt. По умолчанию не задано.
  • country_name — Двухбуквенное сокращение страны для создания самоподписанного сертификата. По умолчанию не задано.
  • state_name — Имя штата или провинции для создания самоподписанного сертификата. По умолчанию не задано.
  • locality_name — Название города или местности для создания самоподписанного сертификата. По умолчанию не задано.
  • org_name — Название организации для создания самоподписанного сертификата. По умолчанию не задано.
  • h5bp_commit — Git-хеш или номер версии для загрузки файлов из HTML5 Boilerplate Server Configs. По умолчанию "3.1.0".
  • setuptools_version — Версия setuptools, которую нужно установить через Pip. По умолчанию 40.6.2.

SSL и Let's Encrypt

Let's Encrypt требует, чтобы ваш веб-сервер был доступен извне, поэтому не используйте его при создании тестовых сайтов в Vagrant или Docker. Также убедитесь, что ваши DNS корректно настроены перед созданием сертификата. После этого будет выдан полностью поддерживаемый и подписанный сертификат для вашего домена, а также будет создан cron-задача для автоматического продления сертификата. Сервер и сертификат оптимизированы для обеспечения наилучшей безопасности, получив рейтинг "A+" от SSL Labs на октябрь 2017 года.

Рейтинг A+ от SSL Labs

Пример плейбука

- hosts: servers
  roles:
     - { role: bbatsche.Nginx, domain: my-test-domain.test }

Лицензия

MIT

Тестирование

Включённый в эту роль набор спецификаций для тестирования каждой задачи по отдельности или в целом. Для выполнения этих тестов вам сначала необходимо установить Vagrant и VirtualBox. Спецификации написаны с использованием Serverspec, поэтому вам потребуется Ruby и Bundler.

Для запуска полного набора спецификаций:

$ gem install bundler
$ bundle install
$ rake

Набор спецификаций будет нацелен на Ubuntu Trusty Tahr (14.04), Xenial Xerus (16.04) и Bionic Bever (18.04).

Чтобы увидеть доступные задачи rake (и спецификации):

$ rake -T

Эти спецификации не предназначены для тестирования идемпотентности. Они предназначены для проверки, что заданные задачи выполняют свои ожидаемые шаги. Идемпотентность тестируется независимо через интеграционное тестирование.

О проекте

Install and configure Nginx and Phusion Passenger along with any number of server blocks (aka vhosts).

Установить
ansible-galaxy install bbatsche/Ansible-Nginx-Passenger-Role
Лицензия
mit
Загрузки
14124
Владелец