Я ищу хорошие практики для развертывания с capistrano.
Я хотел бы начать с краткого описания того, как я выполнял развертывание.
capistrano устанавливается локально на компьютер разработчика. Я развертываю мысленный шлюз с опцией капистрано :gateway
. Во-первых, я думал, что с :gateway
вариант Мне нужно иметь ssh-соединение только с хостом шлюза, но оказывается, что мне нужно ssh-соединение (открытый ключ) ко всем хостам, на которых я хочу выполнить развертывание.
Я хочу найти удобный и безопасный способ развертывания приложения.
Например, в случае, когда начинает работать новый разработчик, гораздо удобнее поставить его public_key только на сервере шлюза, а не на всех серверах приложений. С другой стороны, я не хочу, чтобы у него было какое-либо соединение с серверами в частности ssh к шлюзу, поскольку он разработчик, ему нужно выполнять только развертывание.
Если вам известны передовые методы развертывания с помощью capistrano, сообщите нам об этом.
Capistrano разработан с учетом того, что ssh является основой для всего управления. Машина, используемая в качестве шлюза, должна как принимать, так и выдавать ssh-соединения. Вокруг этого нет ничего невозможного. Ваши разработчики получат ssh-доступ к шлюзу.
У вас есть некоторые требования:
Вам нужно решить, как вы собираетесь обрабатывать ввод с клавиатуры для целей развертывания. У вас есть два основных варианта:
Второй вариант является наиболее безопасным, но он работает лучше всего, если у вас есть система управления конфигурацией. Вы действительно должны использовать его, и он может даже предоставить файл authorized_keys для сервера шлюза.
У вас есть несколько вариантов ограничения действий разработчиков после того, как они подключатся к вашей системе по ssh.
В зависимости от того, как Capistrano на самом деле работает со шлюзом, некоторые из них могут мешать ему работать, поэтому тестирование в порядке. Может случиться так, что для его работы потребуется полная оболочка.