Ошибка: FATAL: # узлов найдено, но не имеет необходимого атрибута для установления соединения. Попробуйте установить другой атрибут, чтобы открыть соединение, используя --attribute.
Проблема, которую я начал с попытки запустить команду, используя команду ножа шеф-повара. Цель состоит в том, чтобы команда выполнялась на любой серверной части роли, как вы увидите.
Итак, когда я запускаю команду, я получаю следующее. Я получаю следующее.
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.
Я пробовал разные атрибуты сети, но безуспешно
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-x-x.us-west-2.compute.internal, который Chef-клиенты обнаруживают при подготовке, а с помощью общедоступного IP-адреса AWS.
Повлияет ли это на мою способность правильно выполнять указанную выше команду?
Сервер Chef перечисляет данные узла как
FQDN: ip-172-31-xx-xx.us-west-2.compute.internal
IP-адрес: 172.31.xx.xx
При таком соответствии настроек AWS,
Частный DNS: ip-172-31-xx-xx.us-west-2.compute.internal
Частные IP-адреса: 172.31.xx.xx.
Однако информация AWS для подключения по ssh к экземпляру
Общедоступный DNS: ec2-54-200-xx-xxx.us-west-2.compute.amazonaws.com Общедоступный IP-адрес: 54.200.xx.xxx
Это общедоступные данные DNS AWS, которые я могу использовать для правильного подключения по ssh к серверу (не нож).
Если возможно, проблема заключается в том, как клиент-шеф-повар предоставляет данные узла на сервер шеф-повара, есть ли возможность исправить это, чтобы сервер шеф-повара отражал общедоступные IP-данные узлов?