3

我正在使用 chef 在 VPC 中创建亚马逊 EC2 实例。--associate-eip我已经使用knife ec2 server create中的选项为新实例分配了一个弹性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

有没有其他解决方法/补丁来解决这个问题?

提前致谢

4

2 回答 2

4

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

添加--server-connect-attribute public_ip_address到上面的knife ec2 create server 命令,这将使knife 使用您服务器的public_ip_address。

注意:这个 hack 使用 knife-ec2 (0.6.4) 工作。参考def ssh_connect_host 这里

于 2013-11-05T07:02:22.843 回答
1

Chef 在注册 EC2 节点时将始终使用私有 IP。您也可以通过在 VPC 中安装您的主厨服务器来实现此功能。绝对不是最佳实践。

另一种解决方法是,让您的主厨服务器位于 VPC 之外。不要使用knife ec2命令引导实例,而是按照此处的说明进行操作。这样,您将从节点本身而不是从 Chef-server/workstation 引导您的节点。

于 2013-10-31T08:53:15.087 回答