Разумное развертывание с использованием EC2 - PullRequest
2 голосов
/ 10 ноября 2011

В настоящее время мы используем RightScale, и каждый раз, когда мы внедряем, мы выполняем скрипт на сервере или массиве серверов, которые мы хотим обновить.Он извлекает код из репозитория GitHub, создает новую папку в /var/www/releases/TIMESTAMP и выполняет символическую привязку корня документа /var/www/current к этому каталогу.

Мы ищем лучшую стратегию развертывания, такую ​​каккак что-то, где мы подключаем SSH к одному из серверов в частной сети и запускаем сценарий командной строки для развертывания того, что мы хотим развернуть.

Однако это означает, что у этого сервера должен быть свой открытый ключв authorized_keys всех серверов, которые мы хотим развернуть.Это безопасно?Разве это не был бы один сервер, который позволил бы получить доступ ко всем остальным серверам?

Какой лучший способ приблизиться к этому?

Спасибо!

1 Ответ

2 голосов
/ 19 ноября 2011

Мы используем аналогичную стратегию для развертывания, хотя мы больше не используем Rightscale.

Я думаю, что в целом такой подход хорош, и мне было бы интересно узнать, что вы считаете несерьезным.

Если вы хотите заняться ssh, я бы сделал следующее:

  1. Блокировка ssh с использованием групп безопасности, например открывайте ssh только для определенных IP-адресов или серверов с группой безопасности deploy или аналогичной. Недостатком здесь является то, что вы можете заблокировать себя, когда другие серверы не работают, и т.д ..
  2. Я бы добавил открытые ключи в каждый экземпляр, чтобы разрешить вход без пароля. Если вы уверены в безопасности, вы поворачиваете эти ключи ежемесячно или, например, когда сотрудники уходят и т. Д.
  3. Используйте fabric или capistrano , чтобы войти на свои серверы (от мастера развертывания) с помощью ssh и выполнить развертывание.

Опять же, я думаю, что подход Rightscale не уникален для них. Многие службы делают это так. Причина в том, что, например, когда вы используете символическую ссылку и сохраняете предыдущую версию, откат проще и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...