Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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
Amazon web services 如何在vpc内使用chef启动amazon ec2实例而不使用网关机器?_Amazon Web Services_Amazon Ec2_Chef Infra_Knife_Amazon Vpc - Fatal编程技术网

Amazon web services 如何在vpc内使用chef启动amazon ec2实例而不使用网关机器?

Amazon web services 如何在vpc内使用chef启动amazon ec2实例而不使用网关机器?,amazon-web-services,amazon-ec2,chef-infra,knife,amazon-vpc,Amazon Web Services,Amazon Ec2,Chef Infra,Knife,Amazon Vpc,我正在使用chef在VPC中创建amazon EC2实例。我使用ec2服务器创建中的--associateEIP选项为新实例分配了一个弹性IP。在没有网关机器的情况下如何引导它?它陷入了“等待sshd”的困境,因为它使用新创建的服务器的私有IP通过ssh连接到其中,尽管它分配了一个弹性IP? 我遗漏了什么吗?这是我使用的命令 bundle exec knife ec2 server create --subnet <subnet> --security-group-ids <

我正在使用chef在VPC中创建amazon EC2实例。我使用ec2服务器创建中的
--associateEIP
选项为新实例分配了一个弹性IP。在没有网关机器的情况下如何引导它?它陷入了“等待sshd”的困境,因为它使用新创建的服务器的私有IP通过ssh连接到其中,尽管它分配了一个弹性IP? 我遗漏了什么吗?这是我使用的命令

bundle exec knife ec2 server create --subnet <subnet> --security-group-ids 
<security_group> --associate-eip <EIP>  --no-host-key-verify --ssh-key <keypair>
--ssh-user ubuntu --run-list "<role_list>" 
--image ami-59590830 --flavor m1.large --availability-zone us-east-1b  
--environment staging --ebs-size 10 --ebs-no-delete-on-term --template-file 
<bootstrap_file> --verbose
bundle exec knife ec2服务器创建--子网--安全组ID
--关联eip--无主机密钥验证--ssh密钥
--ssh用户ubuntu--运行列表“”
--图ami-59590830——风味m1.L——可用区us-east-1b
--环境暂存--ebs大小10--ebs不删除条款--模板文件
--冗长的
是否有其他解决此问题的方法/补丁


提前感谢

在注册EC2节点时,Chef将始终使用专用IP。您也可以通过在VPC中安装chef服务器来实现这一点。绝对不是最好的做法

另一个解决方法是,让您的厨师服务器位于VPC之外。不要使用
knife ec2
命令引导实例,而是按照上面的说明操作。
这样,您将从节点本身而不是从Chef服务器/工作站引导节点。

我最终通过使用
--server connect attribute
选项解决了这个问题,该选项应该与
--ssh gateway
属性一起使用

将服务器连接属性public\u ip\u address添加到上面的刀子ec2 create server命令中,这将使刀子使用服务器的public\u ip\u地址


注:此黑客使用刀子-ec2(0.6.4)工作。出于好奇,请参阅
defsh\u connect\u host

,您为什么说在VPC中安装Chef服务器不是最佳做法?在我看来,这似乎是最好的方法--它加快了速度,将整个infra保持在一个安全的空间内,并将互联网流量降至最低,这降低了成本。理想情况下,您的chef服务器应位于尽可能独立的基础设施上,以便在发生重大故障时,您可以从其他地方从头开始提供所有服务。感谢您的解决方案!我尝试过并面临另外两个问题(已经解决)。我只想分享我的经验,希望它能帮助其他人:(1)安全组可能会阻止您使用SSH进入intance();(2) 您可能需要添加
--无主机密钥验证
选项(以及
刀ec2服务器创建--帮助