правильный способ развертывания с помощью capistrano

правильный способ развертывания с помощью capistrano

Я ищу передовой опыт развертывания с помощью Capistrano.

Я хотел бы начать с краткого описания того, как я выполнял развертывание.

capistrano установлен локально на компьютере разработчика. Я разворачиваю thought gateway с опцией capistrano :gateway. Сначала я думал, что с :gatewayопцией мне нужно иметь ssh-подключение только к хосту gateway, но оказалось, что мне нужно ssh-подключение (открытый ключ) на все хосты, на которых я хочу выполнить развертывание.

Мне бы хотелось найти удобный и безопасный способ развертывания приложения.

Например, в случае, когда к работе приступает новый разработчик, гораздо удобнее разместить егооткрытый_ключтолько на сервере шлюза, а не на всех серверах приложений. С другой стороны, я не хочу, чтобы он имел какое-либо подключение к серверам в частностисшдля шлюза, просто потому что он разработчик, ему нужно делать только развертывания.

Если вам известны передовые методы развертывания с помощью Capistrano, сообщите нам об этом.

решение1

Capistrano разработан с самого начала на основе предположения, что ssh является основой всего управления. Машина, используемая в качестве шлюза, должна как принимать, так и выдавать ssh-подключения. Обойти это невозможно. Ваши разработчики получат ssh-доступ к шлюзу.

У вас есть некоторые требования:

  • Простота добавления новых разработчиков в список авторизованных ключей ваших целей развертывания
  • Не хотим предоставлять разработчикам полноценный терминал на шлюзовом блоке

Вам нужно решить, как вы собираетесь управлять ключами на ваших целях развертывания. У вас есть два основных варианта здесь:

  1. Используйте общий ключ, он будет предоставлен каждому и будет встроен в образ/цели.
  2. Используйте определенные ключи, каждый получает свой собственный, и вы управляете списком authorized_keys через что-то вродеили.

Второй вариант наиболее безопасен, но работает лучше всего, если у вас есть система управления конфигурацией. Вам действительно стоит ее использовать, и она даже может предоставить файл author_keys для сервера шлюза.

У вас есть несколько вариантов ограничения действий разработчиков после того, как они подключатся к вашей системе по SSH.

В зависимости от того, как Capistrano фактически работает со шлюзом, некоторые из них могут помешать ему работать, поэтому необходимо провести тестирование. Возможно, для его работы потребуется полная оболочка.

Связанный контент