나이프 SSH가 내 노드를 찾지 못함 있기 때문에 가능해야한다는

knife ssh내 노드를 찾지 못했습니다. 검색 할 수있을 때 찾을 수 있기 때문에 가능해야한다는 것을 알고 있습니다.

# knife search node name:*
2 items found

Node Name:   web_01
...

Node Name:   admin
...

그러나, 내가 실행 knife ssh하면 ( ‘debug’플래그로 표시 할 것입니다)

# knife ssh "node:*" "uptime" -VV
DEBUG: Using configuration from /root/.chef/knife.rb
DEBUG: Signing the request as dev
DEBUG: Sending HTTP Request via GET to ec2-xx-xx-xx-xx.compute-1.amazonaws.com:4000/search/node
FATAL: No nodes returned from search!

(예, 호스트가 정확하고 방금 게시를 위해 검열했습니다).

QUERY 매개 변수를 수정하려고 시도했지만 항상 동일한 결과를 얻습니다. 난 노력 했어:

  • 마디:*
  • 역할:*
  • *
  • * : *

어떤 아이디어?



답변

나는 그것을 알아. 내 노드에는 fqdn이 없었습니다. 나는을 지정해야했다 -a ipaddress. 오류 메시지는 도움이되지 않았습니다. knife ssh 코드를 디버깅하여 알아 냈습니다. knife 구성 파일에서 속성을 읽지 않는 버그도 있습니다. 이 문제에 대한 티켓을 열고 패치를 제출할 것입니다.

내가 이것을 끝내기 위해 요리사 노드의 호스트 이름을 내 / etc / hosts 파일에 IP 주소에 대한 포인터와 함께 넣었습니다. 예를 들면 다음과 같습니다.

10.3.3.100 chef-client.int

물론 다른 노드와 함께 항상 DNS 서버에 넣을 수도 있습니다. 그것은 문제를 완전히 해결할 것입니다.


답변

또한 -a ipaddress작동하지 않으면 시도하십시오-a cloud.public_ipv4

나는 knife ssh내 노드에 내부 IP 주소를 사용하려고 한다는 것을 알아 낸 후이 솔루션을 보았고 retr0h라는 누군가가 이것을 보여주기 전에 요리사 IRC 채널 (#chef on irc.freenode.net)을 요구했습니다 .


답변

시도하십시오 knife ssh "id:*" "uptime".

기억 knife ssh본질적으로 수행 knife search node하여 쿼리가 작동 하나 여야합니다, 그래서 knife search node(즉, knife search node "node:*"작동하지 않음). knife ssh "role:*"노드에 역할이 할당 된 경우에만 작동합니다. 그 문제에 대한의 목적을 바꾸면 원본 knife search node "name:*"도 작동합니다 knife ssh. 그래서 knife ssh "name:*" "uptime".


답변

당신은 시도한 적이 knife ssh "name:*" "uptime"있습니까?

요리사 10.x를 사용하고 있으며 저에게 효과적입니다.

내 의견으로는을 사용할 때 knife search [INDEX] [QUERY]첫 번째 매개 변수 INDEX는 쿼리 할 항목의 유형을 지정하는 데 사용됩니다. knife ssh명령을 사용하는 동안 노드 검색을 시도한다는 것을 알고 있으므로 필요한 경우 [QUERY]부품을 지정하기 만하면됩니다 name:*.


답변

ssh / config를 사용하고 fqdn으로 연결 하여이 문제를 해결했습니다.