चाकू SSH मेरे नोड्स नहीं ढूंढता है


12

knife sshमेरे नोड्स नहीं मिल रहे हैं। मुझे पता है कि यह सक्षम होना चाहिए क्योंकि जब मैं उन्हें खोज सकता हूं तो मैं उन्हें खोज सकता हूं

# knife search node name:*
2 items found

Node Name:   web_01
...

Node Name:   admin
...

हालांकि, जब मैं दौड़ता हूं knife ssh(मैं इसे 'डीबग' ध्वज के साथ दिखाता हूं) मुझे मिलता है

# 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

मैं यह समझ गया। मेरे नोड्स में एक fddn नहीं था। मुझे निर्दिष्ट करना था -a ipaddress। त्रुटि संदेश मददगार नहीं था। मैंने इसे चाकू ssh कोड डीबग करके पता लगाया। एक बग यह भी है कि यह चाकू विन्यास फाइल से विशेषता को नहीं पढ़ता है। मैं इस मुद्दे के बारे में एक टिकट खोलने जा रहा हूं और शायद एक पैच प्रस्तुत करूंगा।

इससे पहले जो मैंने किया वह आईपी पते के लिए एक पॉइंटर के साथ मेरे / etc / मेजबान फ़ाइल में शेफ नोड के होस्टनाम को रखा गया था। उदाहरण के लिए:

10.3.3.100 शेफ-client.int

आप निश्चित रूप से, हमेशा इसे अपने बाकी नोड्स के साथ-साथ एक DNS सर्वर में डाल सकते हैं। यह पूरी तरह से समस्या का समाधान होगा।


7
अन्य पाठकों के लिए स्पष्ट करने के लिए, " -a ipaddress" शाब्दिक है। यह जाहिरा तौर पर knife sshआईपी ​​द्वारा कनेक्ट नहीं FQDN से कहता है। यह व्यवहार गूंगा है - इसे डिफ़ॉल्ट रूप से इस तरह से वापस आना चाहिए।
स्टीव बेनेट

@SteveBennett मैं सहमत हूं कि यह डिफ़ॉल्ट व्यवहार होना चाहिए। मैं देखता हूं कि मेरी पोस्ट भ्रामक कैसे हो सकती है। स्पष्टीकरण देने के लिए धन्यवाद।
मैक्स

4

इसके अलावा, अगर -a ipaddressकाम नहीं करता है , तो कोशिश करें-a cloud.public_ipv4

मुझे यह पता लगाने के बाद इस समाधान को दिखाया गया था जो knife sshमेरे नोड्स के लिए आंतरिक आईपी पते का उपयोग करने की कोशिश कर रहा था और यह कुछ आईआरएफ चैनल (#chef पर irc.freenode.net) में पूछ रहा था, इससे पहले कि किसी ने retr0h मुझे यह दिखाया


अद्भुत, धन्यवाद! @ अगर आप ec2 चला रहे हैं, और आपके उदाहरण सार्वजनिक IP के साथ बनाए गए हैं, लेकिन hostname स्थानीय एक को इंगित करता है, तो निम्न का उपयोग करें: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
उत्तर के लिए धन्यवाद, लेकिन मैंने दोनों आईडी के लिए "नो नोड्स" शर्त लगाई: * और नाम: *
मैक्स

ठीक है, यह विचित्र है (यानी, यह मेरे लिए काम करता है)। मुझे खोज में दिखाने के लिए नई वस्तुओं को प्राप्त करने के लिए कभी-कभी शेफ-सॉल को मारना पड़ता है, लेकिन, यदि आप "चाकू खोज नोड" से परिणाम प्राप्त कर रहे हैं, तो आपको उसी चाकू की सूची का उपयोग "चाकू ssh" द्वारा किया जाना चाहिए। । मुझे नहीं पता कि परिणाम सूची अलग होने पर आगे कहां देखना है।
cjc

0

क्या आपने कभी कोशिश की है knife ssh "name:*" "uptime"?

मैं महाराज 10.x का उपयोग कर रहा हूं और यह मेरे लिए काम करता है।

मेरी राय में, उपयोग करते समय knife search [INDEX] [QUERY], पहले पैरामीटर INDEXका उपयोग क्वेर होने के लिए आइटम के प्रकार को निर्दिष्ट करने के लिए किया जाता है। knife sshकमांड का उपयोग करते समय , यह जानता है कि आप नोड्स की खोज करने की कोशिश कर रहे हैं, इसलिए आपको जो कुछ करना है वह उस [QUERY]हिस्से को निर्दिष्ट करना है , जो name:*आपके मामले में है।


मुझे लगता है कि @cjc का उत्तर समान है।
ley

0

मैंने इसे ssh / config का उपयोग करके और fqdn द्वारा कनेक्ट करके हल किया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.