के साथ विंडोज़ में एसएसएच स्वचालित करना मेरे पास 13 विंडोज सर्वर जेनकिन्स गुलाम हैं। किसी कारण से (विंडोज अपडेट?), जेनकींस दास समय-समय पर काम करना छोड़ देते हैं और जेनकिन्स स्लेव सेवा को पुनरारंभ करने की आवश्यकता होती है। अगर मैं मैन्युअल रूप से मशीनों को SSH (cygwin ssh सर्वर चल रहा है) मैं बस टाइप करें:रूबी
net stop "Jenkins Slave"
net start "Jenkins Slave"
और इस (लगभग) हमेशा समस्या का हल।
इसलिए मैंने इसे स्वचालित करने के लिए रूबी लिपि लिखी।
यहाँ है:
#!/usr/bin/env ruby
require 'rubygems'
require 'net/ssh'
USER = 'Administrator'
PASS = 'PASSWORD'
hosts = [:breckenridge, :carbondale, :crestone, :denali, :gunnison, :sneffels, "mammoth", "whitney", "snowmass", "firestone", "avon", :grizzly, :silverton]
hosts.each {|host|
puts "SSHing #{host} ..."
Net::SSH.start(HOST, USER, :password => PASS) do |ssh|
puts ssh.exec!('net stop "Jenkins Slave"')
puts ssh.exec!('net start "Jenkins Slave"')
puts "Logging out..."
end
}
स्क्रिप्ट सभी मशीनों पर निष्पादित, मैं उत्पादन है कि सेवा शुरू कर दिया है देखते हैं। हालांकि, यह कभी काम करता है। जब मैं मशीन पर वापस भेजता हूं, तो सेवा शुरू नहीं हुई है।
अफसोस की बात है, मैं लिनक्स का उपयोग नहीं कर सकता - मैं इन मशीनों के नियंत्रण में नहीं हूं।
किसी भी विचार को मैन्युअल रूप से निष्पादित एसएसएच क्यों काम करता है, लेकिन स्क्रिप्ट नहीं है?
धन्यवाद फिल
रूबी आवश्यक है, क्योंकि पावरहेल स्क्रिप्ट की तरह कुछ शायद बेहतर काम करेगा, यह इस तरह के व्यवस्थापक कार्य – Egryan