Кто-нибудь из вас придумал хороший способ поддерживать файл / etc / hosts на нескольких экземплярах EC2 в актуальном состоянии?
Экземпляры отключаются ... создаются новые экземпляры ... и меняются внутренние IP-адреса. Как я могу убедиться, что файл / etc / hosts на всех серверах верен?
2 варианта:
Используйте эластичные IP-адреса. Всякий раз, когда экземпляр получает загрузку, вы можете повторно использовать IP-адрес в новом экземпляре.
Используйте DNS: настройте небольшой DNS-сервер (dnsmasq не требует много ресурсов) на одном из экземпляров и перенаправьте сюда все первичные DNS-серверы на других экземплярах. Настройка нового хоста тривиальна, так как требует не более одной строки в текстовом файле.
Возможно, сочетание того и другого было бы неплохо.
На самом деле я делаю это через свой сервер Puppet, который настраивает мои экземпляры EC2, когда они подключаются и находятся в сети. У меня есть сервер Puppet, который экспортирует IP-адрес, а затем обновляет /etc/hosts
файл, а также /etc/ssh/ssh_known_hosts
файлы автоматически со всеми известными записями.
Чтобы обработать серверы, переходящие в автономный режим, я фактически обернул Host
и Sshkey
типы ресурсов как Expiringhost
и Expiringsshkey
и настроить его на удаление экспортированных записей с максимальным возрастом (для меня установлено 45 минут, поскольку мои проверки должны происходить каждые 30 минут), чтобы старые устаревшие записи также удалялись автоматически.
Теперь я не разрешаю SSH-соединения между экземплярами EC2 и заставляю всех подключаться к экземплярам EC2 с хоста-бастиона, поэтому в настоящее время только хост-бастион имеет Expiringhost <<| |>>
и Expiringsshkey <<| |>>
призывает обновить /etc/hosts
и /etc/ssh/ssh_known_hosts
.
Вы можете использовать синхронизатор файлов, например Unison http://www.cis.upenn.edu/~bcpierce/unison/ но я настоятельно не рекомендую вам это делать. Лучший способ - настроить локальный DNS-сервер (привязать) и поместить туда все ваши хосты.
РЕДАКТИРОВАТЬ EC2 не поддерживает сетевое вещание, многоадресный DNS работать не будет.
Многоадресный DNS? не требуется центральный сервер, но нет безопасности DNS (может быть, это не серьезная проблема, я не знаю, какова ваша среда). Если все IP-адреса всех серверов внезапно меняются, все в порядке. При условии, что все находится в одном широковещательном домене, на EC2 я не мог сказать вам, работают ли широковещательные передачи ...
Я знаю, что на стороне Windows есть какое-то предложение DNS, которое можно использовать. Разве вы не можете использовать это вместо этого?