हम एक काम कर रहे GitLab के URL को कैसे बदलेंगे?


89

मैंने सेट किया है और हम GitLab v6.0.1 की डिफ़ॉल्ट स्थापना चला रहे हैं (हम भी अपग्रेड करने वाले हैं)। यह एक "प्रोडक्शन" सेटअप था, जो इस गाइड को अक्षर तक ठीक करता है:

https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md

अब, हम सुरक्षित रूप से एक कार्यशील URL का URL कैसे बदल सकते हैं?

जाहिरा तौर पर हमारा URL बहुत लंबा है और हम एक नया URL लेकर आए हैं। मैंने कई कॉन्फ़िगरेशन फ़ाइलों को संपादित किया है और "एप्लिकेशन स्थिति जांच" रिपोर्ट सब कुछ ठीक है। मैंने यह सुनिश्चित करने के लिए सर्वर को रिबूट किया है कि चीजें अभी भी काम कर रही हैं।

मैं हमारे मूल एसएसएल पर, नगनेक्स को ठीक से एक्सेस कर सकता हूं। मैं GitLab साइट को ब्राउज़ कर सकता हूं, रिपॉजिटरी बना सकता हूं, आदि मैं कांटा लगा सकता हूं और ठीक कर सकता हूं।

यह सब ठीक लगता है; लेकिन, चूंकि यह मेरे लिए एक देशी वातावरण नहीं है, इसलिए मैं यह जांचना चाहता था कि मैंने गीतालाब साइट का नाम बदलने के लिए सब कुछ किया है।

मैंने जो फ़ाइलें संपादित की हैं, वे हैं:

/etc/hosts
  127.0.0.1  localhost
  10.0.0.10  wake.domain.com    wake
  10.0.0.10  git.domain.com     git

/home/git/gitlab/config/gitlab.yml
  production: &base
    gitlab:
      host: git.domain.com

/home/git/gitlab-shell/config.yml
  gitlab_url: "https://git.domain.com"
  ^- yes, we are on SSL and that is working, even on a new URL

/etc/nginx/sites-available/gitlab
  server {
    server_name git.domain.com

9
सर्वग्राही उपयोगकर्ता स्थापित करते हैं: प्रक्रिया अलग है
जोनाथन रेनहार्ट

जवाबों:


29

आपने सब कुछ सही किया!

आप ईमेल कॉन्फ़िगरेशन भी बदल सकते हैं, यह निर्भर करता है कि क्या ईमेल सर्वर भी एक ही सर्वर है। GitLab द्वारा भेजे गए मेल के लिए gitlab.yml में ईमेल कॉन्फ़िगरेशन है और साथ ही एडमिन-ईमेल भी है।


मैं इस बारे में सोच रहा था, क्योंकि मैंने अपने वैश्विक डेवलपर समूह ईमेल उपनाम से भेजे जाने वाले ईमेल (और अन्य ईमेल) को अलग डोमेन पर सेट किया है। जैसे: devs@domain-2.com। इसका कारण है कि देवों को पुल अनुरोध या अन्य सामान्य ईमेल पर टिप्पणी करने के लिए उत्तर देने की अनुमति दी जाए।
eduncan911 15

2
एक उत्तर के रूप में इसे चिह्नित करने के लिए वापस आ गया क्योंकि GitLab तब से ठीक काम कर रहा है जब मैंने इन परिवर्तनों को बनाया है।
eduncan911

159

गिटलब ओमनीबस

एक ओम्निबस इंस्टॉल के लिए, यह थोड़ा अलग है।

सही में जगह एक सर्वग्राही स्थापित है:

/etc/gitlab/gitlab.rb
    external_url 'http://gitlab.example.com'

अंत में, आपको क्रियान्वित करने की आवश्यकता होगी sudo gitlab-ctl reconfigureऔर sudo gitlab-ctl restartइसलिए परिवर्तन लागू होते हैं।


मैं गलत जगहों पर बदलाव कर रहा था और वे उड़ रहे थे।

गलत रास्ते हैं:

/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
/var/opt/gitlab/.gitconfig
/var/opt/gitlab/nginx/conf/gitlab-http.conf

उन चेतावनियों पर ध्यान दें जो पढ़ी जाती हैं:

# This file is managed by gitlab-ctl. Manual changes will be
# erased! To change the contents below, edit /etc/gitlab/gitlab.rb
# and run `sudo gitlab-ctl reconfigure`.

मेरे पास आंतरिक सर्वर पर GitLab Omnibus है, लेकिन एक अलग URL से इंटरनेट से सुलभ है। external_urlमें विकल्प /etc/gitlab/gitlab.rbयूआरएल सेट करने के लिए इतना है कि परियोजना Git / HTTP URL को सही होगा सही जगह थी।
मैथ्यू क्लार्क

इसके अलावा, इस परिवर्तन के बाद और gitlab-ctl पुन: कॉन्फ़िगर करने के बाद, आपको nginx पुन: कॉन्फ़िगर करने के लिए सर्वर को रीबूट करना होगा।
देजव

आप सही हैं, इन सेटिंग्स को बदलने के लिए यह एकमात्र और सबसे अच्छी जगह है। शेष उत्पन्न होता है।
खतरा 89

4
@Dejv आपको पुनः आरंभ नहीं करना चाहिए। नगनेक्स सेवा को फिर से शुरू करना पर्याप्त होना चाहिए।
जोनाथन रेइनहार्ट

धन्यवाद मेरे लिए यह काम @JonathonReinhart, लेकिन पहले भूल नहीं करते हैं sudo gitlab-ctl stop unicornऔरsudo gitlab-ctl stop sidekiq
Cyberguille

7

वास्तव में, यह पूरी तरह से सही नहीं है। मैं इस पृष्ठ पर पहुंच, के रूप में हम से उत्पादन GitLab सर्वर परिवर्तित कर रहे हैं, अपने आप को इस सवाल का जवाब देने की कोशिश कर रहा http://करने के लिए https://और सबसे सामान जैसा कि ऊपर वर्णित काम कर रहा है, लेकिन जब आप के लिए लॉग इन https://serverऔर सब कुछ दिखता है ठीक ... को छोड़कर जब आप एक परियोजना के लिए ब्राउज़ करें या रिपॉजिटरी, और यह SSH और HTTP निर्देशों को प्रदर्शित करता है ... यह "http" कहता है और जो निर्देश प्रदर्शित करता है उसे "http" भी कहते हैं।

हालाँकि मुझे कुछ और चीजें मिलनी थीं:

/home/git/gitlab/config/gitlab.yml
  production: &base
    gitlab:
      host: git.domain.com

      # Also edit these:
      port: 443
      https: true
...

तथा

/etc/nginx/sites-available/gitlab
  server {
    server_name git.domain.com;

    # Also edit these:
    listen 443 ssl;
    ssl_certificate     /etc/ssl/certs/somecert.crt;
    ssl_certificate_key /etc/ssl/private/somekey.key;

...

आपकी टिप्पणी के लिए एडवर्ड का शुक्रिया (आपने इस सवाल का जवाब पोस्ट किया, जब यह वास्तव में @Razer द्वारा एक अलग जवाब के लिए एक टिप्पणी है)। आप अपने उत्तर (टिप्पणी) को यह बताना चाहते हैं कि आप दूसरों के लिए किस संस्करण पर हैं। लेकिन, जब से मैंने यह प्रश्न पोस्ट किया है, हम केवल इन परिवर्तनों के साथ GitLab का सफलतापूर्वक उपयोग कर रहे हैं। हम टीम के पार और परियोजनाओं को ब्राउज़ कर सकते हैं - पूरी तरह से विशेष रूप से हमारे कॉर्पोरेट नेटवर्क में एसएसएल पर।
eduncan911

2
मुझे पता है, लेकिन दूसरे उत्तर को एक स्वीकृत उत्तर के रूप में चिह्नित किया गया है। इसलिए मैं जानबूझ कर उस पर टिप्पणी नहीं करना चाहता था, क्योंकि उस पर ध्यान नहीं जाता है। एक और उत्तर पोस्ट करना थोड़ा अधिक स्पष्ट है। मैं नवीनतम gitlab- शेल 1.8.0 और gitlab 6.4 स्थिर पर हूं। हम पूरी तरह से https और ssh के माध्यम से भी काम करने में सक्षम हैं। लेकिन हमें हर बार जब हम कॉपी और पेस्ट के निर्देश या यूआरएल को वेब इंटरफेस से जीआईटी क्लाइंट को कॉपी करते हैं तो http द्वारा प्रतिस्थापित करना याद रखना होगा।
एडवर्ड नेड हार्वे

यह मुझे लगता है कि आपने कॉन्फ़िगरेशन फ़ाइलों में से एक में एक URL को याद किया है। हम केवल अपने मूल प्रश्न / विवरण में "चाल" से पहले HTTPS और जानबूझकर अक्षम HTTP का उपयोग करते हैं। इसलिए यह विशेष रूप से HTTPS के रूप में हमें पोस्ट किए गए निर्देशों के अनुसार स्थानांतरित करने की अनुमति देता है। लेकिन, यदि आप एक मिश्रित-मोड http / https वातावरण चला रहे हैं, तो सबसे अधिक संभावना है कि कुछ अतिरिक्त लाइनें हैं जिन्हें आपको संपादित करने की आवश्यकता है।
eduncan911

टिप्पणी के लिए धन्यवाद, लेकिन (ए) मैंने दोहरा दिया कि मैंने उपरोक्त उत्तर में संदर्भित परिवर्तन किए हैं। (b) मैंने निम्नलिखित प्रक्रिया स्थापित की, और मैंने यह सुनिश्चित करने के लिए उस प्रक्रिया का फिर से पालन किया कि मैंने हर जगह URL को बदल दिया है। (c) हमने केवल http से https में बदलाव नहीं किया, हमने hostname भी बदला। होस्टनाम परिवर्तन ने काम किया, जिसका अर्थ है कि कॉन्फ़िगर फ़ाइल संशोधन सफल रहे। (d) मुझे आपके सेटअप के बारे में संदेह है। क्या आप अपने गिटलैब में एक परियोजना के लिए ब्राउज़ कर सकते हैं, और शीर्ष पर जहां यह आपको एसएसएच और एचटीटीपी URL दिखाता है, ssh और http के बीच टॉगल करता है, और देखें कि क्या यह URL प्रदर्शित करता है "http" या "https?"
एडवर्ड नेड हार्वे

1
यह उत्तर अब अस्पष्ट है। आप कहते हैं "वास्तव में, यह पूरी तरह से सही नहीं है।" लेकिन यह क्या"? क्या आप सवाल में कुछ का जिक्र कर रहे हैं? अन्य उत्तरों में से एक?
जोनाथन रेनहार्ट

1

इस पर विस्तृत नोट हैं जिन्होंने मुझे यहां स्थित होने में पूरी तरह से मदद की ।

जोनाथन रीनहार्ट पहले से ही संपादित करने के लिए, कुंजी बिट के साथ उत्तर दिया है /etc/gitlab/gitlab.rb , बदल external_url और फिर से चलाने केsudo gitlab-ctl reconfigure; sudo gitlab-ctl restart

हालाँकि मुझे थोड़ा और आगे जाने की ज़रूरत थी और ऊपर मैंने जो डॉक्स लिंक किए हैं, उन्होंने इसे समझाया। तो जैसा मैंने देखा वैसा ही समाप्त हुआ:

external_url 'https://gitlab.toilethumor.com'
nginx['ssl_certificate'] = "/www/ssl/star_toilethumor.com-chained.crt"
nginx['ssl_certificate_key'] = "/www/ssl/star_toilethumor.com.key"
nginx['proxy_set_headers'] = {
 "X-Forwarded-Proto" => "http",
 "CUSTOM_HEADER" => "VALUE"
}

ऊपर, मैंने स्पष्ट रूप से घोषित किया है कि इस सर्वर पर मेरे एसएसएल गुडीज कहां हैं। और इसके बाद जरूर है

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

इसके अलावा, जब आप omnibus पैकेज को https में बदलते हैं, तो बंडल किया गया nginx केवल पोर्ट 443 पर काम करेगा। चूंकि मेरा सारा सामान रिवर्स प्रॉक्सी के माध्यम से पहुंचा है, इसलिए यह हिस्सा संभवतः महत्वपूर्ण था।

जैसा कि मैंने इसके माध्यम से जाना, मैंने कुछ पेंच किया और यह वास्तविक नग्नेक्स लॉग को खोजने के लिए सहायक था, इससे मुझे वहां ले जाया गया:

sudo gitlab-ctl tail nginx
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.