Какъв е правилният начин да настроите Capistrano за внедряване на Rails приложение в множество среди с различни разрешения, необходими за всяка среда? С други думи, представете си типичен сценарий, при който разработчик прави промени в кода и изпраща промените в среда за тестване. След тестването мениджърът на версиите изпраща промените в производството. И така нататък, с възможни допълнителни нива между тях. Capistrano (дори с многостепенното разширение в capistrano-ext) изглежда е създаден за един потребител, който има разрешения за внедряване във всяка среда. Каква е препоръчителната настройка за случаите, когато хората на най-ниското ниво не трябва да могат да разположат целия път до производството?
Разрешения за внедряване в множество среди с Capistrano
Отговори (1)
При настройването на Capistrano и внедряването има разлики между потребителския акаунт, който се използва за внедряване, и хората с разрешения, които могат да внедряват.
В Capistrano настройвате потребителя
set :user, 'deploy'
Този потребителски акаунт трябва да съществува на всяка машина, която скриптът за внедряване на Capistrano свързва, всяка роля app
, web
, db
. Препоръчително е да го настроите с SSH ключ удостоверяване.
Когато някой използва cap deploy
, той ще се свърже с машините с SSH-ключове и ще работи само ако имате инсталиран публичен ключ в този акаунт.
Този метод позволява на различните хора да имат различен достъп до машините. За production
инсталирайте само SSH-ключовете на хората с администраторски достъп до машините. Тогава дори ако някой стартира cap deploy
, той няма да работи, тъй като не може да се свърже с отдалечения потребител.
Позволяваме на всеки да има своя SSH ключ в сценарийната среда, но само няколко души имат достъп до производствения сървър.