Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';无法使用ssh访问我的EC2 chef节点_Ssh_Amazon Ec2_Chef Infra_Knife - Fatal编程技术网

Can';无法使用ssh访问我的EC2 chef节点

Can';无法使用ssh访问我的EC2 chef节点,ssh,amazon-ec2,chef-infra,knife,Ssh,Amazon Ec2,Chef Infra,Knife,因此,我以多种方式设置了EC2 chef节点(使用刀子引导或通过节点中的客户机chef参数),每次尝试通过刀子ssh访问节点时,我都会遇到以下错误: WARNING: Failed to connect to *node's FQDN* -- SocketError: getaddrinfo: nodename nor servname provided, or not known 我使用刀子ssh主要是更新到节点,然后运行sudo client chef 根据这个错误,我假设我没有访问FQD

因此,我以多种方式设置了EC2 chef节点(使用刀子引导或通过节点中的客户机chef参数),每次尝试通过刀子ssh访问节点时,我都会遇到以下错误:

WARNING: Failed to connect to *node's FQDN* -- SocketError: getaddrinfo: nodename nor servname provided, or not known
我使用刀子ssh主要是更新到节点,然后运行sudo client chef

根据这个错误,我假设我没有访问FQDN的权限,因为它是一个内部地址,难道chef服务器不应该为我这样做吗? 我将很快在AWS上拥有一个私有VPC,因此在任何情况下,我都无法从工作站访问内部地址


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

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

有两种解决方法:

1) 厨师的推送工作——在我写这篇文章的时候,厨师的推送工作在Ubuntu 14上不起作用,我也不太想让这项服务支配我选择的操作系统

2) 不建议在任何地方使用,但在我的厨师服务器上安装刀子很有效。因为chef服务器在VPC内,所以他是我唯一的访问点,从那里我将运行刀子ssh到所有其他节点


如果有人想要更多的基于推送的服务,我建议您查看SaltStack,因为您的节点没有外部IP,所以您应该使用ssh网关。请参阅此线程:

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

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


还有一种方法值得一提,那就是如果您的策略经过良好测试,可以将chef客户端运行添加到cron中。

您的节点是否有外部IP?没有,并且在任何情况下都不能从工作站访问