Разрешения за внедряване в множество среди с Capistrano

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




Отговори (1)


При настройването на Capistrano и внедряването има разлики между потребителския акаунт, който се използва за внедряване, и хората с разрешения, които могат да внедряват.

В Capistrano настройвате потребителя

set :user, 'deploy'

Този потребителски акаунт трябва да съществува на всяка машина, която скриптът за внедряване на Capistrano свързва, всяка роля app, web, db. Препоръчително е да го настроите с SSH ключ удостоверяване.

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

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

Позволяваме на всеки да има своя SSH ключ в сценарийната среда, но само няколко души имат достъп до производствения сървър.

person christophercotton    schedule 27.01.2011