Dao SSH không tìm thấy các nút của tôi


12

knife sshkhông tìm thấy các nút của tôi. Tôi biết nó sẽ có thể bởi vì khi tôi có thể tìm kiếm chúng, tôi tìm thấy chúng

# knife search node name:*
2 items found

Node Name:   web_01
...

Node Name:   admin
...

Tuy nhiên, khi tôi chạy knife ssh(tôi sẽ hiển thị nó với cờ 'gỡ lỗi') tôi nhận được

# 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!

(vâng, máy chủ lưu trữ là chính xác, tôi chỉ kiểm duyệt nó cho bài viết).

Tôi đã thử sửa đổi tham số QUERY và luôn nhận được kết quả tương tự. Tôi đã thử:

  • nút:*
  • vai trò:*
  • *
  • * *

Có ý kiến ​​gì không?

Câu trả lời:


16

Tôi đã hiểu rồi. các nút của tôi không có một fqdn. Tôi đã phải xác định -a ipaddress. thông báo lỗi không hữu ích. Tôi đã tìm ra nó bằng cách gỡ lỗi mã ssh dao. cũng có một lỗi mà nó không đọc thuộc tính từ tệp cấu hình dao. Tôi sẽ mở một vé về vấn đề này và có thể gửi một bản vá.

Những gì tôi đã làm để vượt qua điều này là đặt tên máy chủ của nút đầu bếp trong tệp / etc / hosts của tôi bằng một con trỏ tới địa chỉ IP. Ví dụ:

10.3.3.100 đầu bếp-client.int

Tất nhiên, bạn luôn có thể đặt nó vào một máy chủ DNS, cùng với các nút còn lại của bạn. Điều đó sẽ hoàn toàn giải quyết vấn đề.


7
Để làm rõ cho những người đọc khác, " -a ipaddress" là nghĩa đen. Nó dường như bảo knife sshkết nối bằng IP chứ không phải FQDN. Hành vi này là ngu ngốc - theo mặc định, nó nên dự phòng theo cách này.
Steve Bennett

@SteveBennett Tôi đồng ý rằng đó phải là hành vi mặc định. Tôi thấy làm thế nào bài viết của tôi có thể gây nhầm lẫn. Cảm ơn đã làm rõ.
Tối đa

4

Ngoài ra, nếu -a ipaddresskhông hoạt động, hãy thử-a cloud.public_ipv4

Tôi đã được chỉ ra giải pháp này sau khi nhận ra rằng knife sshđang cố gắng sử dụng các địa chỉ IP nội bộ cho các nút của mình và tôi đã hỏi một số câu hỏi trong kênh IRC của đầu bếp (#chef trên irc.freenode.net) trước khi ai đó có tên là Ret0h chỉ cho tôi điều này .


thật tuyệt vời, cảm ơn bạn @all nếu bạn đang chạy ec2 và các phiên bản của bạn đã được tạo bằng IP công cộng, nhưng tên máy chủ được trỏ đến địa phương, hãy sử dụng như sau:knife ssh 'name:mydc1*' interactive -a node.node_name
Ilja

0

Hãy thử knife ssh "id:*" "uptime".

Hãy nhớ rằng knife sshvề cơ bản là một knife search node, vì vậy truy vấn của bạn phải là một truy vấn hoạt động knife search node(nghĩa là knife search node "node:*"không hoạt động). knife ssh "role:*"cũng nên hoạt động, nhưng chỉ khi các nút của bạn có vai trò được gán cho chúng. Đối với vấn đề đó, bản gốc của bạn knife search node "name:*"cũng sẽ hoạt động khi bạn gửi lại truy vấn knife ssh. Vì vậy, knife ssh "name:*" "uptime".


1
Cảm ơn bạn đã trả lời, nhưng tôi đặt cược "Không có nút" cho cả id: * và tên: *
Tối đa

OK, thật kỳ quái (nghĩa là nó hiệu quả với tôi). Thỉnh thoảng tôi phải đá đầu bếp-solr để có các đối tượng mới xuất hiện trong tìm kiếm, nhưng, nếu bạn nhận được kết quả từ "nút tìm kiếm dao", bạn sẽ nhận được cùng một danh sách nút được sử dụng bởi "dao ssh" . Tôi không biết tìm ở đâu tiếp theo nếu danh sách kết quả khác nhau.
cjc

0

Bạn đã bao giờ thử knife ssh "name:*" "uptime"chưa?

Tôi đang sử dụng đầu bếp 10.x và nó hoạt động với tôi.

Theo tôi, khi sử dụng knife search [INDEX] [QUERY], tham số đầu tiên INDEXđược sử dụng để chỉ định loại mục cần truy vấn. Trong khi sử dụng knife sshlệnh, nó biết rằng bạn đang cố gắng tìm kiếm các nút, vì vậy tất cả những gì bạn phải làm là chỉ định [QUERY]phần, name:*trong trường hợp của bạn.


Tôi nghĩ câu trả lời của @cjc có nghĩa tương tự.
ley

0

Tôi đã giải quyết điều này bằng cách sử dụng ssh / config và kết nối bằng fqdn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.