작동중인 GitLab 설치의 URL을 어떻게 변경합니까?


89

설정을 완료했으며 GitLab v6.0.1의 기본 설치를 실행 중입니다 (업그레이드 예정). 이 가이드를 문자 그대로 정확하게 따르는 "제작"설정이었습니다.

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

이제 작동중인 설치의 URL을 어떻게 안전하게 변경합니까?

분명히 우리의 URL은 매우 길고 우리는 새로운 URL을 생각해 냈습니다. 여러 구성 파일을 편집했으며 "Application Status Checks"에서 모든 것이 정상이라고보고합니다. 계속 작동하는지 확인하기 위해 서버를 재부팅했습니다.

원래 SSL을 통해 Nginx에 제대로 액세스 할 수 있습니다. GitLab 사이트를 탐색하고 저장소를 만드는 등의 작업을 수행 할 수 있습니다. 포크하고 커밋 할 수 있습니다.

모두 괜찮은 것 같습니다. 그러나 이것은 나에게 네이티브 환경이 아니기 때문에 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

답변:


29

당신은 모든 것을 올바르게했습니다!

이메일 서버가 동일한 서버인지 여부에 따라 이메일 구성을 변경할 수도 있습니다. 이메일 구성에 gitlab.yml GitLab에 의해 전송 된 메일 또한 관리자 - 이메일.


다른 도메인에있는 글로벌 개발자 그룹 이메일 별칭에서 보내도록 From 이메일 (및 다른 이메일)을 설정했기 때문에 궁금합니다. 예 : devs@domain-2.com. 그 이유는 개발자가 Reply를 눌러 Pull 요청이나 기타 일반 이메일에 댓글을 달 수 있도록하기 위해서입니다.
eduncan911

2
위의 변경 사항을 적용한 이후 GitLab이 잘 작동했기 때문에 이것을 답변으로 표시하기 위해 돌아 왔습니다.
eduncan911

159

GitLab 옴니버스

Omnibus 설치의 경우 약간 다릅니다.

Omnibus 설치 의 올바른 위치는 다음과 같습니다.

/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이 올바르도록 URL을 설정하는 올바른 위치였습니다.
Matthew Clark

또한이 변경 후 gitlab-ctl reconfigure를 실행 한 후 nginx 재구성을 수행하려면 서버를 재부팅해야합니다.
Dejv

당신 말이 맞습니다.이 설정을 변경할 수있는 유일한 곳입니다. 나머지는 생성됩니다.
danger89

4
@Dejv 당신은 다시 시작할 필요가 없습니다. nginx 서비스를 다시 시작하면 충분합니다.
Jonathon Reinhart 2015

덕분에 나를 위해이 작품을 @JonathonReinhart하지만 먼저 할 것을 잊지 마세요 sudo gitlab-ctl stop unicornsudo 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;

...

귀하의 의견에 대해 Edward에게 감사드립니다 (이 질문에 대한 답변을 게시했는데 실제로 위의 @Razer가 다른 답변에 대한 의견 일 때). 다른 사람을 위해 어떤 버전을 사용하고 있는지 설명하기 위해 답변 (댓글)을 편집 할 수 있습니다. 그러나 우리는이 질문을 게시 한 이후로 이러한 변경 사항만으로 GitLab을 성공적으로 사용하고 있습니다. 우리는 회사 네트워크에서 독점적으로 SSL을 통해 팀 전체의 저장소와 프로젝트를 검색 할 수 있습니다.
eduncan911

2
알고 있지만 다른 답변은 수락 된 답변으로 표시됩니다. 그래서주의를 끌지 못하기 때문에 일부러 언급하고 싶지 않았습니다. 다른 답변을 게시하는 것이 조금 더 분명합니다. 나는 최신 gitlab-shell 1.8.0 및 gitlab 6.4 안정을 사용하고 있습니다. 또한 전적으로 https 및 ssh를 통해 작업 할 수 있습니다. 그러나 웹 인터페이스에서 git 클라이언트로 지침 또는 URL을 복사하여 붙여 넣을 때마다 http를 https로 대체해야합니다.
Edward Ned Harvey

구성 파일 중 하나에서 URL을 놓친 것 같습니다. 여기에서 원래 질문 / 설명에서 "이동"하기 전에 HTTPS 및 의도적으로 비활성화 된 HTTP 만 사용합니다. 따라서 독점적으로 HTTPS로 사용하면 게시 된 지침에 따라 이동할 수 있습니다. 그러나 혼합 모드 http / https 환경을 실행하는 경우 편집해야 할 추가 행이있을 가능성이 큽니다.
eduncan911 2014 년

의견을 보내 주셔서 감사합니다.하지만 (a) 위의 답변에서 언급 한 변경 사항을 다시 확인했습니다. (b) 다음 절차를 설치하고 해당 절차를 다시 따라 URL이있는 모든 위치를 변경했는지 확인했습니다. (c) http를 https로 변경했을뿐만 아니라 호스트 이름도 변경했습니다. 호스트 이름이 변경되었습니다. 이는 구성 파일 수정이 성공했음을 의미합니다. (d) 나는 당신의 설정에 대해 회의적입니다. gitlab에서 프로젝트를 탐색 할 수 있으며, SSH 및 HTTP URL이 표시되는 맨 위에서 ssh와 http 사이를 전환하고 표시되는 URL에 "http"또는 "https"가 있는지 확인할 수 있습니다.
Edward Ned Harvey

1
이 대답은 이제 모호합니다. 당신은 "사실, 이것은 완전히 정확하지 않습니다."라고 말합니다. 하지만 "이것"은 무엇입니까? 질문에서 무언가를 언급하고 있습니까? 다른 답변 중 하나?
Jonathon Reinhart는

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"
}

위에서 나는이 서버에서 내 SSL 상품이 어디에 있는지 명시 적으로 선언했습니다. 그리고 그것은 물론

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

또한 omnibus 패키지를 https로 전환하면 번들로 제공되는 nginx는 포트 443에서만 제공됩니다. 내 모든 항목이 역방향 프록시를 통해 도달하기 때문에이 부분은 잠재적으로 중요했습니다.

이 과정을 거치면서 무언가를 망 쳤고 실제 nginx 로그를 찾는 것이 도움이되었습니다.

sudo gitlab-ctl tail nginx
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.