Ruby
Ansible Ruby Site Role
Эта роль установит Rbenv и использует его для установки указанной версии Ruby. Она создаст сайт Nginx, который будет запускать Ruby через Phusion Passenger.
Требования
Для установки Rbenv необходимо, чтобы Git был установлен на сервере. Но, конечно, вы уже это сделали, верно?
Эта роль использует ACL файловой системы Linux и группу "web-admin" для предоставления доступа к определённым директориям. Вы можете настроить эти шаги вручную или установить роль bbatsche.Base
.
Переменные роли
domain
— Домен сайта, который нужно создать.ruby_version
— Версия Ruby для установки. По умолчанию "2.3.1".rbenv_version
— Версия Rbenv для установки. По умолчанию "v1.0.0".ruby_build_version
— Версия плагина ruby-build для установки. По умолчанию "v20160426".default_gems_version
— Версия плагина default-gems для установки. По умолчанию это Git SHA: "4f68eae".rbenv_vars_version
— Версия плагина rbenv-vars для установки. По умолчанию "v1.2.0".binstubs_version
— Версия плагина binstubs для установки. По умолчанию "v1.4".copy_configru
— Нужно ли копировать файл конфигурации stub config.ru на сайт, что полезно для тестирования. По умолчанию нет.http_root
— Директория, под которую будут созданы все директории сайта. По умолчанию "/srv/http".rbenv_root
— Директория для установки Rbenv и его поддерживающих файлов. По умолчанию "/usr/local/rbenv".
Зависимости
Эта роль зависит от bbatsche.Nginx. Вы должны сначала установить эту роль, используя:
ansible-galaxy install bbatsche.Nginx
Пример playbook
- hosts: servers
roles:
- { role: bbatsche.Ruby, domain: my-node-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
Эти спецификации не предназначены для тестирования идемпотентности. Они предназначены для проверки того, что указанные задачи выполняют свои ожидаемые шаги. Идемпотентность тестируется отдельно через интеграционное тестирование.
Install Rbenv, Ruby, and create an Nginx site running it through Phusion Passenger
ansible-galaxy install bbatsche/Ansible-Ruby-Site-Role