2014-10-17 29 views
6

मुझे एक स्क्रिप्ट से अधिमानतः गैर-संवादात्मक रूप से कराफ खोल आदेश जारी करने की आवश्यकता है। अधिक विशेष रूप से, मुझे करफ को feature:install स्वचालित रूप से सुविधाओं का एक सेट बताने की आवश्यकता है।स्क्रिप्ट कराफ खोल आदेश?

# Attempt to install a feature in a way I could script 
bash> bin/karaf feature:install myFeature 
# Drops me into Karaf shell 
karaf> feature:uninstall myFeature 
Error executing command: Feature named 'myFeature' is not installed 
# Feature wasn't installed 

क्या यह संभव है? क्या इस मुद्दे को हल करने का एक अलग तरीका है (कराफ सुविधाओं के एक सेट का स्वचालित इंस्टॉल) जो मुझे याद आ रहा है?

उत्तर

-1

तो सामान्य अभ्यास सुविधा स्थापित करना है, फिर एक बंडल पर लूप: सूची | grep bundleName यह देखने के लिए कि क्या आपको आवश्यक बंडल इंस्टॉल हैं या नहीं। फिर आप अपने टेस्ट केस के साथ जारी रखते हैं।

+0

यह कराफ से निपटने के दौरान आम तौर पर उपयोगी जानकारी हो सकती है, लेकिन यह सवाल का जवाब नहीं है (कैसे गैर इंटरैक्टिव रूप से कराफ को आदेश जारी करने के लिए) – hoijui

3

बिन/कराफ के साथ आप करफ को एक लॉगिन प्रॉम्प्ट के साथ शुरू करते हैं, अगर आप करफ शुरू करना चाहते हैं तो आप आदेश जारी कर सकते हैं जिन्हें आपको पहले सर्वर मोड में करफ शुरू करने की आवश्यकता है। इसके लिए बिन/स्टार्ट शैल स्क्रिप्ट का उपयोग करें। अब आप या तो बिन/क्लाइंट या बिन/शेल कमांड का उपयोग करफ के साथ एक हेडलेस मोड में संवाद करने के लिए कर सकते हैं।

उदाहरण के लिए:

./bin/client list 
START LEVEL 100 , List Threshold: 50 
ID | State | Lvl | Version | Name 
---------------------------------------------------------------------------------- 
72 | Active | 80 | 0  | mvn_org.ops4j.pax.web.samples_war_4.1.0-SNAPSHOT_war 

यह पहले से ही Karaf के सभी संस्करणों के लिए (शायद नहीं 2.2.x लाइन ;-)) काम करना चाहिए
संस्करण उपयोग कर रहे एक 3.0.x है या उच्चतर आपको कमांड में उपयोगकर्ता जोड़ने की आवश्यकता हो सकती है।

./bin/client -u karaf list 
+0

मुझे 'सत्र प्राप्त करने में विफल' त्रुटि दिखाई दे रही है, लेकिन यह है शायद एक अलग मुद्दा। जानकारी के लिए धन्यवाद! – dfarrell07

+0

ऐसा लगता है कि आपको ग्राहक के साथ एक उपयोगकर्ता की आवश्यकता होगी। उस मामले में -यू 'उपयोगकर्ता' के साथ प्रयास करें। पता नहीं है कि कौन सा उपयोगकर्ता ओडीएल उपयोग कर रहा है, लेकिन आसानी से उपयोगकर्ताओं में .properties फ़ाइल में आसानी से पाया जा सकता है। –

+0

'karaf = karaf, _g_: admingroup' प्रासंगिक रेखा प्रतीत होता है। अभी भी './bin/client -u karaf list' का उपयोग करके 'सत्र प्राप्त करने में विफल।' देख रहा है। – dfarrell07

1

पासवर्ड सेक्रेट रखना महत्वपूर्ण नहीं है, तो एसएसपास का उपयोग करके गैर-इंटरैक्टिव कराफ खोल कमांड जारी करना संभव है।

sshpass -p karaf ssh -tt -p 8101 -o StrictHostKeyChecking=no [email protected] feature:install odl-l2switch-switch-ui 

OpenDaylight's Vagrant-based L2Switch Tutorial में कार्य उदाहरण।

संबंधित मुद्दे