Назад | Перейти на главную страницу

Как я могу поддерживать мой файл / etc / hosts в актуальном состоянии с помощью нескольких экземпляров ec2

Кто-нибудь из вас придумал хороший способ поддерживать файл / 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, которое можно использовать. Разве вы не можете использовать это вместо этого?