如何通过 SSH 连接到 EC2 集群中的所有实例?

如何通过 SSH 连接到 EC2 集群中的所有实例?

我刚刚使用创建了一个集群spark-ec2。我按照此处的步骤操作http://spark.apache.org/docs/latest/ec2-scripts.html

现在我想配置所有从属服务器(150),即同时为主服务器和所有从属服务器安装 Java 8,有没有一种快速简便的方法可以为所有实例(主服务器和从属服务器)提供单个终端?

答案1

如果你安装了 EC2 Run Command,你可以使用它来执行此操作,但它可能更适合云初始化您在每个实例的用户数据中放置的配置。

或者考虑使用 AWS OpsWorks 在启动时根据需要配置节点,或使用以下命令生成黄金映像:打包机这样配置就放置在构建时而不是启动时。

通过 cluster-ssh 配置 150 个节点会导致所有节点不一致,如果需要更换/重新配置其中一个节点,则会很麻烦。

Ansible、Puppet、Salt、CFEngine 是其他可以执行此操作的工具,但不是“交互式”的。

答案2

针对您最初的问题,您可以安装mpssh-大规模并行 SSH并使用它在所有实例上运行命令。第一次运行它时,您可能需要输入“yes”150 次,除非您想忽略主机密钥检查。

答案3

使用pssh可能是一个很好的解决方案。这是一个例子。

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

dir命令将在所有从属服务器上运行。pssh所有集群上均已预先安装。

相关内容