2009-10-18 10 views
5

a previous SO-Answer में अनुशंसित की तरह मैं secureci की एक वीएमवेयर छवि चला रहा हूं जिसमें मैवेन, नेक्सस, हडसन, एसवीएन युक्त पूर्व-कॉन्फ़िगर किए गए विकास बुनियादी ढांचे के रूप में चल रहा है।मैं नेक्सस पर कैसे तैनात (सुरक्षित द्वारा होस्ट किया गया)?

अब मैं अपने विंडोज एक्सपी मशीन पर मैवेन को अपनी कलाकृतियों को नेक्सस पर तैनात करने के लिए कॉन्फ़िगर करना चाहता हूं। लेकिन जब मैं इस तरह मेरी pom.xml कॉन्फ़िगर (Deploying Artifacts to Nexus से लिया गया):

<distributionManagement> 
    <!-- use the following if you're not using a snapshot version. --> 
    <repository> 
     <id>nexus</id> 
     <name>RepositoryProxy</name> 
     <url>scp://192.168.0.197/nexus/content/repositories/releases</url> 
    </repository> 
    <!-- use the following if you ARE using a snapshot version. --> 
    <snapshotRepository> 
     <id>nexus</id> 
     <name>RepositoryProxy</name> 
     <url>scp://192.168.0.197/nexus/content/repositories/snapshots</url> 
    </snapshotRepository> 
</distributionManagement> 

... mvn deploy प्रिंट त्रुटि संदेश:

Error deploying artifact: Exit code: 1 - 
    mkdir: cannot create directory `/nexus': Permission denied 

settings.xml में मैं उपयोगकर्ता नाम और इस तरह पासवर्ड कॉन्फ़िगर किया गया:

<servers> 
    <server> 
    <id>nexus</id> 
    <username>tangens</username> 
    <password>********</password> 
    </server> 
</servers> 

प्रश्न: क्या विन्यास मैं nex को तैनाती के लिए उपयोग करने के लिए क्या है हमें?


मैं पहले से ही scp के बजाय https कोशिश की, लेकिन इस Maven के साथ लापता प्रमाण पत्र के साथ समस्याओं का सामना किया।

मैंने scp के बजाय http की कोशिश की, लेकिन सुरक्षित 80 में पोर्ट 80 (http) तक पहुंच को अवरुद्ध करने के लिए फ़ायरवॉल स्थापित किया गया है, जिससे टाइमआउट होता है।

संपादित करें:

मैंने पाया कि गठजोड़ /root/sonatype-work/nexus/storage/snapshots/ में अपनी कलाकृतियों संग्रहीत करता है। लेकिन मुझे अपने settings.xml में रूट खाते के प्रमाण-पत्र दर्ज करने का विचार पसंद नहीं है।

संपादित करें:

प्रश्न: आप नेक्सस के तहत एक की मेजबानी की भंडार के लिए तैनाती सक्षम था?

हां, यह डिफ़ॉल्ट रूप से सक्षम है।

प्रश्न: क्या नेक्सस पोर्ट 80 पर सुन रहा है?

वहाँ एक अपाचे बंदरगाह पर चल रहा है 80. Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 mod_ssl/2.2.8 OpenSSL/0.9.8g mod_wsgi/1.3 Python/2.5.2

प्रश्न: एक फ़ायरवॉल HTTP अनुमति नहीं दे रहा, क्यों तुम सिर्फ एक अपवाद HTTP कनेक्शन के लिए से न जोड़ें " मेजबान "आईपी?

क्योंकि मुझे लगता है कि सिक्योरसीआई अच्छी तरह से कॉन्फ़िगर किया गया है और इंस्टॉलेशन को ट्वीव किए बिना इसे करने का कोई तरीका होना चाहिए। लेकिन शायद मैं यहाँ बहुत बेवकूफ हूँ।

उत्तर

12

त्रुटि स्पष्ट है: उपयोगकर्ता tangens को दूरस्थ मशीन पर /nexus बनाने की अनुमति नहीं है।दरअसल, आपका scp यूआरएल सही नहीं है और जैसा आपने उल्लेख किया है, सही स्थान पर इंगित नहीं कर रहा है। आपको उपयोगकर्ता को tangens सही अनुमति देना होगा या रूट कनेक्ट करने की अनुमति देने के लिए sshd को कॉन्फ़िगर करना होगा, लेकिन यह एक अच्छा विचार नहीं है।

ऐसा कहकर, मुझे नहीं लगता कि scp नेक्सस के साथ जाने का तरीका है। यदि आप scp का उपयोग करके तैनात करते हैं, तो नेक्सस को तैनाती की अधिसूचना नहीं दी जाएगी और आपकी कलाकृतियों को दिखाई नहीं देगा। नेक्सस पुस्तक के Deploying Artifacts to Nexus और अध्याय 9.4.2. Update the POM: Deployment Configuration के अनुसार, HTTP PUT के साथ तैनाती की जानी चाहिए।

<distributionManagement> 
    ... 
    <repository> 
     <id>releases</id> 
     <name>Internal Releases</name> 
     <url>http://localhost:8081/nexus/content/repositories/releases</url> 
    </repository> 
    ... 
    </distributionManagement> 

मैंने देखा आपने कहा कि SecureCI, एक फ़ायरवॉल कि पोर्ट 80 पर कनेक्शन ड्रॉप करने हालांकि कॉन्फ़िगर किया गया है का उपयोग करता है के रूप में मैं अपने आप को SecureCI का उपयोग नहीं कर रहा हूँ: दूसरे शब्दों में, अपने distributionManagement अनुभाग कुछ इस तरह की तरह दिखना चाहिए

  • आप नेक्सस के तहत एक की मेजबानी की भंडार के लिए तैनाती सक्षम था:, मैं कुछ (शायद बेवकूफ) प्रश्न हैं?
  • क्या नेक्सस पोर्ट 80 पर सुन रहा है?
  • यदि फ़ायरवॉल HTTP की अनुमति नहीं दे रहा है, तो आप "मेजबान" आईपी से HTTP कनेक्शन के लिए अपवाद क्यों नहीं जोड़ते?

संपादित करें: ओपी जवाब के अनुसार, मुझे लगता है कि HTTPS का उपयोग करके वास्तव में "प्राकृतिक" जिस तरह से SecureCI साथ जाने के लिए हो सकता है। लेकिन, इससे पहले कि आप HTTPS के माध्यम से अपलोड कर सकें, आपको अपने जेडीके में सिक्योरसीआई का सीए प्रमाण पत्र (उनके प्रमाणपत्र के जारीकर्ता का प्रमाण पत्र) जोड़ना होगा। ऐसा करने के लिए आप these instructions का पालन कर सकते हैं। लेकिन आगे जाने से पहले, असली सवाल यह है:

  • करता SecureCI CA प्रमाणपत्र (उनके प्रमाणपत्र जारीकर्ता का प्रमाण पत्र) प्रदान करते हैं?

यदि वे नहीं करते हैं, तो मुझे नहीं पता कि फ़ायरवॉल नियमों को ट्विक किए बिना तैनाती कैसे संभव है।

+0

मैंने आपके पोस्टिंग में आपके प्रश्नों को एकीकृत किया। – tangens

+0

मैंने आपके द्वारा सुझाए गए फ़ायरवॉल को छेड़ा। अब मैं 'http' के साथ तैनाती कर सकता हूं। यदि कोई अन्य समाधान पॉप अप नहीं करता है जो मुझे इंस्टॉलेशन में बदलाव किए बिना तैनात करने की अनुमति देता है, तो मैं इस जवाब को स्वीकार करूंगा। धन्यवाद। – tangens

+0

ठीक है। मैंने इस बीच एक और सुझाव (प्रश्न?) जोड़ा। लेकिन यह जानना अच्छा है। –

1

क्षमा करें। बस सवाल भर आया।

दो पोस्टर हैं, जैसा कि अन्य पोस्टर्स ने उल्लेख किया है: मैवेन को प्रमाण पत्र की आपूर्ति करें या HTTP एक्सेस चालू करें और पोर्ट 80 खोलें (जो सुरक्षा के लिए डिफ़ॉल्ट रूप से बंद है)।

HTTP पहुंच को सक्षम करने के लिए, SecureCI में/trac/secureci/wiki/Howto/EnableHttp देखें (विकी पर Howto दस्तावेज़ों के तहत, मैं HTTP पहुंच कैसे सक्षम करूं?)।

प्रमाण पत्र के लिए, सार्वजनिक और निजी कुंजी/etc/apache2/ssl/में हैं।

यदि आप डिफ़ॉल्ट प्रमाणपत्र को प्रतिस्थापित करना चाहते हैं, तो अपने आप को स्थापित करने के लिए दस्तावेज़ (जिसे स्वयं हस्ताक्षरित या किसी मान्यता प्राप्त सीए द्वारा हस्ताक्षरित किया जा सकता है) सिक्योरसीआई विकी/ट्रैक/सुरक्षित/विकी/हाउटो/इंस्टालस्लर्ट (विकी पर हाउटो दस्तावेज़ों के तहत, मैं एक एसएसएल प्रमाणपत्र कैसे स्थापित करूं?)। मौजूदा प्रमाणपत्र का स्थान भी वहां उल्लेख किया गया है।

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