มีด SSH ไม่พบโหนดของฉัน


12

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 และได้ผลลัพธ์เดียวกันเสมอ ฉันพยายามแล้ว:

  • โหนด: *
  • บทบาท:*
  • * * * *
  • * * * * * * * *

ความคิดใด ๆ

คำตอบ:


16

ฉันคิดออก โหนดของฉันไม่มี fqdn -a ipaddressฉันจะต้องระบุ ข้อความแสดงข้อผิดพลาดไม่เป็นประโยชน์ ฉันคิดออกโดยการแก้จุดบกพร่องรหัส ssh นอกจากนี้ยังมีข้อผิดพลาดที่ไม่ได้อ่านคุณสมบัติจากไฟล์ config ของมีด ฉันจะเปิดตั๋วเกี่ยวกับปัญหาและอาจส่งแพทช์

สิ่งที่ฉันทำเพื่อให้ผ่านไปได้นี่คือชื่อโฮสต์ของโหนดเชฟในไฟล์ / etc / hosts ของฉันพร้อมด้วยตัวชี้ไปยังที่อยู่ IP ตัวอย่างเช่น:

10.3.3.100 chef-client.int

แน่นอนคุณสามารถใส่มันลงในเซิร์ฟเวอร์ DNS ได้เสมอพร้อมกับโหนดอื่น ๆ ของคุณ นั่นจะแก้ปัญหาได้อย่างสมบูรณ์


7
เพื่อชี้แจงให้ผู้อ่านคนอื่น ๆ " -a ipaddress" เป็นตัวอักษร เห็นได้ชัดว่ามันบอกknife sshให้เชื่อมต่อโดย IP ไม่ใช่ FQDN ลักษณะการทำงานนี้เป็นใบ้ - มันควรสำรองทางนี้โดยค่าเริ่มต้น
Steve Bennett

@SteveBennett ฉันยอมรับว่ามันควรจะเป็นพฤติกรรมเริ่มต้น ฉันเห็นว่าโพสต์ของฉันอาจสร้างความสับสน ขอบคุณสำหรับการชี้แจง
Max

4

นอกจากนี้หาก-a ipaddressไม่ได้ผลให้ลอง-a cloud.public_ipv4

ผมก็แสดงให้เห็นวิธีการแก้ปัญหานี้หลังจากการหาว่าknife sshได้พยายามที่จะใช้ที่อยู่ IP ภายในสำหรับโหนดของฉันและมันต้องใช้เวลาขอให้บางส่วนในช่องเชฟ IRC (#chef บน irc.freenode.net) ก่อนที่จะมีคนชื่อ retr0h แสดงให้ฉันเห็นนี้


น่าทึ่งขอบคุณ! @ หากคุณกำลังเรียกใช้ ec2 และอินสแตนซ์ของคุณถูกสร้างขึ้นด้วย IP สาธารณะ แต่ชื่อโฮสต์ชี้ไปที่โลคอลท้องถิ่นให้ใช้สิ่งต่อไปนี้:knife ssh 'name:mydc1*' interactive -a node.node_name
Ilja

0

ลอง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"ดังนั้น


1
ขอบคุณสำหรับการตอบกลับ แต่ฉันเดิมพัน "ไม่มีโหนด" สำหรับทั้ง id: * และชื่อ: *
Max

ตกลงนั่นแปลกประหลาด (นั่นมันใช้งานได้สำหรับฉัน) ฉันต้องเตะ Chef-solr เป็นครั้งคราวเพื่อให้วัตถุใหม่แสดงขึ้นมาในการค้นหา แต่ถ้าคุณได้รับผลลัพธ์จาก "โหนดการค้นหามีด" คุณควรได้รับรายการโหนดเดียวกันโดยใช้ "knife ssh" . ฉันไม่รู้ว่าจะดูต่อไปถ้ารายการผลลัพธ์ต่างกัน
cjc

0

คุณเคยลองknife ssh "name:*" "uptime"ไหม

ฉันใช้พ่อครัว 10.x และมันใช้ได้กับฉัน

ในความคิดของฉันเมื่อใช้knife search [INDEX] [QUERY]พารามิเตอร์แรกINDEXจะใช้เพื่อระบุประเภทของรายการที่จะสอบถาม ในขณะที่ใช้knife sshคำสั่งจะรู้ว่าคุณกำลังพยายามค้นหาโหนดดังนั้นสิ่งที่คุณต้องทำคือระบุ[QUERY]ส่วนซึ่งเป็นname:*ในกรณีของคุณ


ฉันคิดว่าคำตอบของ @cjc นั้นมีความหมายเหมือนกัน
เลย์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.