2014-10-27 15 views
8

के माध्यम से सभी जेनकिन्स दासों पर रिमोट कमान चलाएं, मैं सभी यूनिक्स गुलाम पर समान शेल कमांड (ls जैसे बहुत ही सरल शेल कमांड) को चलाने के लिए चाहता हूं जो मास्टर के स्क्रिप्ट कंसोल का उपयोग कर मास्टर से जुड़े हुए हैं।मास्टर्स के स्क्रिप्ट कंसोल

मैं ग्रोवी का उपयोग करके यह कैसे कर सकता हूं?

ऐसा कुछ करना चाहते हैं: Display Information About Nodes लेकिन जानकारी प्रदर्शित करने के बजाय, मैं प्रत्येक गुलाम पर कुछ सरल यूनिक्स आदेश भी चला सकता हूं और परिणामों को प्रिंट करना चाहता हूं।

+0

http://jenkins-ci.361315.n4.nabble.com/Execute-a-command-on-all-nodes-master-slaves-td4024223.html – Jayan

+0

आप इसे आवश्यकता क्यों है? यह एक ऑर्केस्ट्रेशन भूमिका की तरह लगता है, जैसे कठपुतली और नमक करता है। – nerdioculos

+0

दरअसल मेरा मुख्य कारण यह देखना है कि यह ग्रोवी सिस्टम स्क्रिप्ट के माध्यम से संभव है या नहीं। मुझे यकीन है कि यह इस तरह से किया जा सकता है (हालांकि एक दुरुपयोग हो सकता है)। – coffeMug

उत्तर

14
import hudson.util.RemotingDiagnostics; 

print_ip = 'println InetAddress.localHost.hostAddress'; 
print_hostname = 'println InetAddress.localHost.canonicalHostName'; 

// here it is - the shell command, uname as example 
uname = 'def proc = "uname -a".execute(); proc.waitFor(); println proc.in.text'; 

for (slave in hudson.model.Hudson.instance.slaves) { 
    println slave.name; 
    println RemotingDiagnostics.executeGroovy(print_ip, slave.getChannel()); 
    println RemotingDiagnostics.executeGroovy(print_hostname, slave.getChannel()); 
    println RemotingDiagnostics.executeGroovy(uname, slave.getChannel()); 
} 
+0

मैंने यह कोशिश की और यह कुछ कमांड के लिए काम करता है लेकिन इसमें * * के साथ कोई भी आदेश निष्पादित प्रतीत नहीं होता है। उस पर कोई विचार? मैंने इसे से बचने की कोशिश की लेकिन उसे अभी एक त्रुटि मिली। – timmyonline

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