Как запустить экземпляр amazon ec2 внутри vpc с помощью шеф-повара без использования шлюза?

Я использую шеф-повар для создания экземпляров Amazon EC2 внутри VPC. Я выделил эластичный IP-адрес новому экземпляру, используя параметр --associate-eip при создании сервера knife ec2. Как мне загрузить его без шлюза? Он застревает в «Ожидание 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

Есть ли другой обходной путь/патч для решения этой проблемы?

заранее спасибо


person mintuhouse    schedule 31.10.2013    source источник


Ответы (2)


Наконец-то я решил проблему, используя опцию --server-connect-attribute, которая должна использоваться вместе с атрибутом --ssh-gateway.

Добавьте --server-connect-attribute public_ip_address к приведенной выше команде создания сервера knife ec2, которая заставит нож использовать public_ip_address вашего сервера.

Примечание. Этот хак работает с использованием knife-ec2 (0.6.4). См. def ssh_connect_host здесь

person mintuhouse    schedule 05.11.2013
comment
Спасибо за решение! Я пробовал и столкнулся с двумя другими проблемами (которые были решены). Я просто хочу поделиться своим опытом, надеясь, что это поможет другим людям: (1) группа безопасности может помешать вам войти в инстанс по SSH (см. это); (2) Возможно, вам потребуется добавить параметр --no-host-key-verify (см. это и knife ec2 server create --help) - person tung; 12.02.2014

Chef всегда будет использовать частный IP-адрес при регистрации узлов EC2. Вы можете заставить это работать, разместив свой сервер шеф-повара внутри VPC. Определенно не лучшая практика.

Другой обходной путь — позволить вашему серверу шеф-повара находиться вне VPC. Вместо начальной загрузки экземпляра с помощью команды knife ec2 следуйте инструкциям здесь. Таким образом, вы загрузите свой узел с самого узла, а не с Chef-сервера/рабочей станции.

person slayedbylucifer    schedule 31.10.2013
comment
Из любопытства, почему вы говорите, что наличие сервера Chef внутри VPC не является лучшей практикой? Мне кажется, что это лучший подход — он ускоряет работу, сохраняет всю инфраструктуру в безопасном пространстве и сводит интернет-трафик к минимуму, что снижает затраты. - person cassianoleal; 01.11.2013
comment
Ваш сервер шеф-повара в идеале должен находиться в как можно более отдельной инфраструктуре, чтобы в случае серьезного сбоя вы могли подготовить все с нуля в другом месте. - person msaspence; 14.03.2014