【问题标题】:Can't access my EC2 chef node with knife ssh无法使用刀 ssh 访问我的 EC2 厨师节点
【发布时间】:2016-07-27 03:41:15
【问题描述】:

所以我已经通过多种方式设置了我的 EC2 chef 节点(使用 knife 引导或通过节点中的 client-chef 参数引导),每次我尝试通过 knife ssh 访问节点时都会收到以下错误:

WARNING: Failed to connect to *node's FQDN* -- SocketError: getaddrinfo: nodename nor servname provided, or not known

我主要使用knife ssh来更新节点,然后运行sudo client-chef

从这个错误中,我假设我无法访问 FQDN 作为其内部地址,难道厨师服务器不应该为我这样做吗? 我很快就会在 AWS 上拥有一个私有 VPC,因此在任何情况下我都无法从我的工作站访问内部地址。

有没有办法让厨师服务器运行这个 ssh 命令,或者以其他方式运行它?

【问题讨论】:

  • 你的节点有外网IP吗?
  • 不,它没有,并且在任何情况下都无法从工作站访问

标签: ssh amazon-ec2 chef-infra knife


【解决方案1】:

我发现基本上是我对Chef工作原理的误解,我一直在寻找某种推送机制,而Chef不支持开箱即用的推送。

有两种解决方法:

1) Chef 的推送作业 - 在我写这篇文章时,厨师推送作业在 Ubuntu 14 上不起作用,我不太希望让这项服务决定我选择的操作系统

2) 不推荐任何地方,但在我的厨师服务器上安装刀是有效的。由于主厨服务器位于 VPC 内,因此他是我唯一的访问点,我将从那里运行 knife ssh 到我的所有其他节点。

如果有人正在寻找更多基于推送的服务,我建议查看 SaltStack

【讨论】:

    【解决方案2】:

    由于您的节点没有外部 IP,您应该使用 ssh 网关。请参考本帖:Using knife ec2 plugin to create VM in VPC private subnet

    正如您在回答中提到的,厨师不提供推送功能,而是使用拉取功能。而knife ssh 正是这样做的——它通过ssh 连接到节点并允许您运行chef-client 命令,该命令将从厨师服务器中提取配置。

    请注意,在您的第二个解决方案中,VPC 中的任何节点都可以使用刀。这不一定是 Chef 服务器,或者我应该说 Chef 服务器根本不必在此 VPC 中。但是,这样的解决方案会损害安全性,因为您使用 Chef 服务器的身份验证和您的 ssh 私钥都将位于您的工作站之外的某个位置。

    还有另一种方法可以提及,如果您的策略经过良好测试,则将 chef-client 运行添加到 cron。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多