Ошибка: FATAL: # узла найдены, но не имеют обязательного атрибута для установления соединения. Попробуйте установить другой атрибут, чтобы открыть соединение с помощью --attribute.ВНИМАНИЕ: Не удалось подключиться к ip-xxx-xx-xx-xx
Проблема, с которой я начинаю с попытки выполнить команду, используя команду повара шеф-повара. Цель состоит в том, чтобы команда выполнялась на любой серверной части роли, как вы увидите.
Так что, когда я запускаю команду я получаю следующее я получаю следующее
knife ssh "role:servers" "touch /home/ubuntu/file.txt"
WARNING: Failed to connect to ip-172-31-8-x.us-west-2.compute.internal -- SocketError: getaddrinfo: nodename nor servname provided, or not known
WARNING: Failed to connect to ip-172-31-94-xb.us-west-2.compute.internal -- SocketError: getaddrinfo: nodename nor servname provided, or not known
WARNING: Failed to connect to ip-172-31-99-x.us-west-2.compute.internal -- SocketError: getaddrinfo: nodename nor servname provided, or not known
Когда я попробовать новые атрибуты
knife ssh "role:web" "touch /home/ubuntu/file.txt" -x ubuntu -a hostname
FATAL: 6 nodes found, but does not have the required attribute to establish the
connection. Try setting another attribute to open the connection using --attribute.
Я пытался Differnet атрибуты, но не повезло
knife ssh "role:servers" "touch /home/ubuntu/file.txt" -a ec2.public_hostname
knife ssh "role:servers" "touch /home/ubuntu/file.txt" -a public_hostname
knife ssh "role:servers" "touch /home/ubuntu/testfile.txt" --attribute 54.68.122.109 -i /Users/useraccount/.ssh/mykey.pem -x ubuntu
FATAL: 2 nodes found, but does not have the required attribute to establish the connection. Try setting another attribute to open the connection using --attribute.
Очевидно, что у меня что-то не хватает.
Следует отметить, что я могу использовать ssh на серверах, но не используя ip-172-31-xx.us-west-2.compute.internal, которые клиент-шеф-клиент обнаруживает при настройке, скорее, AWS Публичный IP.
Это повлияет на то, что я смогу правильно выполнить команду выше?
Chef данные списки серверов узла как
FQDN: IP-172-31-хх-xx.us-запад 2.compute.internal
IP Address: 172.31.xx. хх
С AWS согласования установки, как это так,
Priviate DNS: IP-172-31-хх-xx.us-запад 2.compute.internal
Priviate IP-адреса: 172.31.xx.xx
Однако информация AWS для sshing в экземпляр является
Public DNS: ec2-54-200-xx-xxx.us -west-2.compute.amazonaws.com Public IP: 54.200.xx.xxx
Это данные AWS Public DNS я могу использовать, чтобы правильно SSH в сервер (не ножом).
Если возможно, проблема заключается в том, как данные узла узла шеф-повара передаются на сервер шеф-повара, есть ли возможность исправить это, так что сервер шеф-повара отражает данные об общедоступных IP-адресах aws?
См. Комментарии к второму отвечу здесь: http://serverfault.com/questions/641951/knife-cant-ssh-into-newly-instantiated-ec2-server – Tensibai
Возможно, это был случай, если использовать нож для создания ec2 сервер, однако я использую параметр автоматической установки, где chef-client -j /etc/chef/mynodes.json обнаруживает настройки экземпляра, а затем добавляет себя на сервер шеф-повара. Вот здесь проблема. Полное доменное имя и IP-адрес отображаются некорректно. Я думаю, что они должны показать общедоступное DNS-имя и IP-адрес. Так что, если это так, неплохо бы знать, как добавляет эту информацию chef-clinet. Глядя на шеф-повара, вы не можете увидеть, как пройти общественную информацию. – Lui