2016-04-06 56 views
3

因此,我通过几种方式(使用刀或通过我的节点上的客户 - 主厨参数进行引导)设置了我的EC2主厨节点,并且每次尝试访问通过刀SSH节点我得到以下错误:无法用刀ssh访问我的EC2主厨节点

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

我用刀子SSH主要是更新到节点,只是执行sudo客户厨师

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

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

+0

您的节点是否有外部IP? – taleodor

+0

不,并且在任何情况下都无法从工作站访问 – AmirS

回答

0

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

有2个解决方法是:

1)厨师推工作 - 在我写这篇文章,厨师推作业不会在Ubuntu 14工作,我不是太热衷于让这个服务指定我选择的操作系统

2)不建议任何地方,但在我的厨师服务器上安装刀工作。由于厨师服务器在VPC内,他是我唯一的访问点,从那里我将运行刀ssh到我所有的其他节点。

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

0

由于您的节点没有一个外部IP,你应该使用一个SSH网关。请参考此主题:Using knife ec2 plugin to create VM in VPC private subnet

正如您在答案中提到的,厨师不提供推送功能,而是使用拉取。而刀ssh完全是这样 - 它ssh到节点,并允许您运行chef-client命令,这将从厨师服务器拉配置。

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

还有一种方法可以提到,即如果您的策略经过充分测试,可以将chef-client运行添加到cron。