Ваш лучший выбор состоит в том, чтобы использовать больше чем один внешний источник для Вашей информации о IP. В дополнение к whatismyip больше всего, если не все, у поставщиков DDNS (например, DynDNS) есть подобный сервис. Если Вы не можете получить информацию от одного сайта, просто пробуют следующий в списке.
Э ... вы пытаетесь использовать ssh как root. EC2 по умолчанию не разрешает это даже с вашим входом в ключевой файл по умолчанию:
ОШИБКА: Net :: SSH :: AuthenticationFailed: root @
Хотя ваша тестовая команда использует ubuntu @
.
Вы можете «разрешить» root-доступ, изменив файл authorized_keys в /root/.ssh
(или добавив ключ самостоятельно).
Возникла пара проблем.
Сценарий пытался использовать "root", поскольку это идентификатор пользователя по умолчанию. Чтобы исправить это, мне пришлось добавить одну строку в файл knife.rb:
knife[:ssh_user]="ubuntu"
Вторая проблема заключалась в том, что ssh не знал, как найти ключ (потому что это был deploy.pem). Поэтому мне пришлось сделать следующее:
ubuntu> exec ssh-agent /user/bin/bash #This causes the terminal to disappear
ubuntu> ssh-add /home/jgodse/.ssh/deploy.pem
Как только это было сделано, я повторно ввел команду
knife ec2 server create -r 'recipe[apt]'
и пошел дальше.
Try running the command like below:
knife ec2 server create --image ami-xxxx -i /root/.ssh/deploy.pem --flavor t1.micro -x root --groups ChefGroup -Z ap-southeast-1a -r "recipe[apt]"