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

Как подключиться по SSH ко всем экземплярам в кластере EC2?

Я только что создал кластер, используя spark-ec2. Я выполнил шаги здесь http://spark.apache.org/docs/latest/ec2-scripts.html .

Теперь я хочу настроить все ведомые устройства (150), то есть установить Java 8 как для ведущего, так и для всех ведомых устройств одновременно, есть ли быстрый и простой способ иметь один терминал для всех экземпляров (ведущего и ведомого)?

Вы можете сделать это с помощью команды запуска EC2, если у вас установлен этот агент, хотя он может лучше подходить для чего-то вроде Cloud-Init конфигурация, которую вы вводите в пользовательские данные для каждого экземпляра.

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

Настройка 150 узлов с помощью cluster-ssh - это рецепт несогласованности всех ваших узлов, и это будет проблемой, если один из узлов потребуется заменить / повторно подготовить.

Ansible, Puppet, Salt, CFEngine - другие инструменты, которые могут это делать, но не «интерактивно».

В ответ на ваш исходный вопрос вы можете установить mpssh - параллельный массовый SSH и используйте его для запуска команд на всех ваших экземплярах. При первом запуске вам может потребоваться набрать «да» 150 раз, если вы не хотите игнорировать проверку ключа хоста.

С помощью pssh может быть хорошим решением. Вот пример.

pssh -i -h /root/spark-ec2/slaves dir

В dir команда будет запущена на всех подчиненных устройствах. pssh предустановлен на весь кластер.