में विफल रहा है मुझे एक जेनकींस बिल्ड मिला है जो एक पोस्ट-बिल्ड एक्शन के रूप में कैपिस्ट्रानो तैनाती चलाता है।जेनकींस के माध्यम से कैपिस्ट्रानो के माध्यम से तैनाती - एसएसएच प्रमाणीकरण
कंसिस्ट्रानो कार्य को कंसोल से जेनकिंस उपयोगकर्ता के रूप में चलाना बिल्कुल ठीक काम करता है और पासवर्ड प्रॉम्प्ट के बिना (मैंने पहले निर्माण और स्टेजिंग सर्वर दोनों पर एसएसएच कुंजी सेट की हैं)। हालांकि, जेनकींस के माध्यम से एक ही स्क्रिप्ट चलाते समय, मुझे अचानक एक पासवर्ड प्रॉम्प्ट मिलता है और निर्माण बाद में विफल रहता है (कोई टीटीई मौजूद नहीं है)।
[workspace] $ /bin/sh -xe /tmp/hudson7321493219694918714.sh
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script : cap _2.13.4_ deploy
[workspace] $ /bin/sh -xe /tmp/hudson1545664641721322948.sh
+ cap _2.13.4_ deploy
* executing `deploy'
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
triggering before callbacks for `deploy:update_code'
[32m--> Updating code base with checkout strategy[0m
executing locally: "git ls-remote [email protected]:my_project.git master"
command finished in 1200ms
* executing "git clone -q [email protected]:my_project.git /var/www/staging/my_project/releases/20121029223619 && cd /var/www/staging/my_project/releases/20121029223619 && git checkout -q -b deploy 1fb11d669a6cb5a714d077162305dfcfaba82f01 && (echo 1fb11d669a6cb5a714d077162305dfcfaba82f01 > /var/www/staging/my_project/releases/20121029223619/REVISION)"
servers: ["my.staging-server.com"]
Password: stty: standard input: Inappropriate ioctl for device
stty: standard input: Inappropriate ioctl for device
stty: standard input: Inappropriate ioctl for device
*** [deploy:update_code] rolling back
* executing "rm -rf /var/www/staging/my_project/releases/20121029223619; true"
servers: ["my.staging-server.com"]
** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: my.staging-server.com (Net::SSH::AuthenticationFailed: not-specified)
connection failed for: my.staging-server.com (Net::SSH::AuthenticationFailed: not-specified)
POST BUILD TASK : FAILURE
यह जब शायद जेनकींस के माध्यम से चल मेरी SSH कुंजी को लेने नहीं करता है रूबी की तरह दिखता है (Net::SSH::AuthenticationFailed: not-specified
)?
क्या किसी को पता है कि यहां क्या गलत हो रहा है?
जेनकिन्स प्रोजेक्ट के वर्कस्पेस में /tmp/hudson*.sh में जेनरेट करता है, जो सटीक उसी शेल स्क्रिप्ट को चलाता है क्योंकि उपयोगकर्ता जेनकींस पूरी तरह से ठीक काम करता है। यह भी अजीब बात यह है कि सर्वर के लिए एसएसएचइंग ठीक काम करता है, लेकिन फिर गिट (क्लिट लक्ष्य के रूप में उसी रिमोट मशीन पर गिट सर्वर) से क्लोनिंग विफल रहता है (केवल जेनकिन्स बिल्ड में चलाने पर)। मैं उलझन में हूं। – Burgi
मुझे लगता है कि जेनकिन्स "रूट" के रूप में चलता है, इसलिए "टोपी" कमांड को पर्यावरण जानकारी प्रिंट करने के लिए अपनी स्क्रिप्ट में "env | sort" डालें, ताकि आप देख सकें कि उपयोगकर्ता कौन है। मैं अब एक ही मुद्दे पर काम कर रहा हूं। अगर मैं कुछ लेकर आया तो मैं आपको बता दूंगा। – Harmon
कौन सा उपयोगकर्ता आपकी Capistrano स्क्रिप्ट कनेक्ट कर रहा है? यदि आप निर्दिष्ट नहीं करते कि आप किसके साथ कनेक्ट करते हैं तो यह एक अलग उपयोगकर्ता के रूप में "गिट क्लोन" चला रहा है। यह उस उपयोगकर्ता के लिए डिफ़ॉल्ट होगा जो तैनाती होस्ट से कैप स्क्रिप्ट चलाता है। उदाहरण के लिए, यह हमारा सेटअप है: 'सर्वर "# {deploy_user} @ # {hostname}",: ऐप,: डीबी,: प्राथमिक => सत्य' और' सेट: deploy_user, ENV ['USER'] '। – Harmon