Разрешения для развертывания в нескольких средах с Capistrano - PullRequest
0 голосов
/ 23 сентября 2010

Как правильно настроить Capistrano для развертывания приложения Rails в нескольких средах с разными разрешениями, необходимыми для каждой среды?Другими словами, представьте типичный сценарий, когда разработчик вносит изменения в код и вносит изменения в среду тестирования.После тестирования менеджер релизов отправляет изменения в производство.И так далее, с возможными дополнительными уровнями между ними.Capistrano (даже с многоступенчатым расширением в capistrano-ext), похоже, создан для одного пользователя, имеющего права на развертывание в любой среде.Какова рекомендуемая настройка для случаев, когда люди на нижнем уровне не могут быть в состоянии развернуть весь путь до производства?

1 Ответ

1 голос
/ 27 января 2011

При настройке Capistrano и развертывании существуют различия между учетной записью пользователя, которая используется для развертывания, и людьми с разрешениями, которые могут развертывать.

В Capistrano вы настраиваете пользователя

set :user, 'deploy'

Эта учетная запись должна существовать на каждой машине, к которой подключается сценарий развертывания Capistrano, каждая роль app, web, db. Рекомендуется установить его с аутентификацией ключа SSH .

Когда кто-то использует cap deploy, он подключится к машинам с SSH-ключами и будет работать, только если у вас установлен открытый ключ для этой учетной записи.

Этот метод позволяет разным людям иметь разный доступ к машинам. Для production устанавливайте только SSH-ключи людей, имеющих доступ администратора к машинам. Тогда даже если кто-то запустит cap deploy, он не будет работать, поскольку он не сможет подключиться к удаленному пользователю.

Мы разрешаем любому иметь свой SSH-ключ в промежуточной среде, но только несколько человек имеют доступ к производственному серверу.

...