GitLab을 CentOS7에 설치해 보았습니다.

GitLab을 CentOS7에 설치해 보았습니다.

2022-10-05 last update

9 minutes reading GitLab
사내에서 소스 제어용으로 설치해 본다.
청결한 환경에서 특히 주문을 받아들이지 않으면 yak 비율은 상당히 낮다.

설치



공식이며 사전에 openssh와 postfix를 설치하는 지시.
postfix 설치하지 않은 경우 sendmail과 충돌하여 다른 서비스에 영향이 있으면 싫다.
# yum install https://downloads-packages.s3.amazonaws.com/centos-7.0.1406/gitlab-7.5.1_omnibus.5.2.0.ci-1.el7.x86_64.rpm

読み込んだプラグイン:fastestmirror
gitlab-7.5.1_omnibus.5.2.0.ci-1.el7.x86_64.rpm                                                                                                                                                                         | 286 MB  00:04:44
/var/tmp/yum-root-oftyrA/gitlab-7.5.1_omnibus.5.2.0.ci-1.el7.x86_64.rpm を調べています: gitlab-7.5.1_omnibus.5.2.0.ci-1.el7.x86_64
/var/tmp/yum-root-oftyrA/gitlab-7.5.1_omnibus.5.2.0.ci-1.el7.x86_64.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ gitlab.x86_64 0:7.5.1_omnibus.5.2.0.ci-1.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

==============================================================================================================================================================================================================================================
 Package                                    アーキテクチャー                           バージョン                                                       リポジトリー                                                                     容量
==============================================================================================================================================================================================================================================
インストール中:
 gitlab                                     x86_64                                     7.5.1_omnibus.5.2.0.ci-1.el7                                     /gitlab-7.5.1_omnibus.5.2.0.ci-1.el7.x86_64                                     793 M

トランザクションの要約
==============================================================================================================================================================================================================================================
インストール  1 パッケージ

合計容量: 793 M
インストール容量: 793 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : gitlab-7.5.1_omnibus.5.2.0.ci-1.el7.x86_64                                                                                                                                                                    1/1
Thank you for installing GitLab!
Configure and start GitLab by running the following command:

sudo gitlab-ctl reconfigure

GitLab should be reachable at localhost
Otherwise configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
And running reconfigure again.

  検証中                  : gitlab-7.5.1_omnibus.5.2.0.ci-1.el7.x86_64                                                                                                                                                                    1/1

インストール:
  gitlab.x86_64 0:7.5.1_omnibus.5.2.0.ci-1.el7

完了しました!

공식이라면 다음 1 단계로 끝났습니다.
bug인가, 라고 할까 bug이겠지만, 이하 해 두지 않으면 진행되지 않았다.
# vi /etc/gitlab/gitlab.rb
# デフォルトだと"="が入っていなくて構文エラーなので"="をつける(FQDNがlocalhostでないなら変更)
#external_url 'localhost'
external_url = '[アクセスするFQDN]'
# ついでにメール設定(デフォルトだと[email protected][サーバホスト]で送信するため飛ばないケースがある)
gitlab_rails['gitlab_email_from'] = '[送信用のメールアドレス]'

이렇게하지 않으면 다음과 같은 오류가 발생했습니다.

Recipe Compile Error in/opt/gitlab/embedded/cookbooks/gitlab/recipes/default.rb

RuntimeError



External URL must include a FQDN

왠지 어쩔 수 없는 에러다. .

다음
# gitlab-ctl reconfigure

무려 이것만으로 끝납니다.
긴 로그를 토하고 정상적으로 종료하면 OK.
후에는 httpd의 방화벽 열어 요적인 움직임.

깨끗한 상태인 OS의 경우 여기까지 하면 gitlab 내부의
nginx
postgresql
redis
sidekiq
유니콘
수수께끼가 움직이기 시작하고 브라우저에서 액세스하면 표시할 수 있다.
초기 ID/PW는

루트
5iveL!fe

라는 신비한 암호.



로고가 귀엽다.





너무 주장하겠지.
이하의 파일을 준비해 주면 교환 가능.

/opt/gitlab/embedded/service/gitlab-rails/app/assets
brand_logo.png : ログイン画面 720×464px
favicon.ico : favicon 16×16px
logo-white.png : 左上ボタン(白) 84×79px
logo-black.png : 左上ボタン(黒) 75×65px

변경하면
# gitlab-ctl reconfigure
# gitlab-ctl restart

포트를 Fuck



기존에 넣고 있던 미들웨어와 쓰고 있는 경우 문제가 나온다.
yml의 설정 변경으로 어떻게든 하고 있는 기사도 많지만 omunibus판으로 즐겁게 하면
chef가 설정을 만들고 있기 때문에 gitlab.rb에서 변경하지 않을 때 제대로 반영 할 수 없다 (reconfigure로 돌아가기).

예를 들어 다음과 같이 포트를 어긋나고,

/etc/gitlab/gitlab.rb
unicorn['port'] = 8080
redis['port'] = 6379
postgresql['port'] = 5432

다음과 같이 처음부터 설치하지 않는 방법도 있다.

/etc/gitlab/gitlab.rb
nginx['enable'] = false
postgresql['enable'] = false
redis['enable'] = false

이 근처의 자세한 것은 omunibus판의 readme를 보는 것이 안전할 것이다.
htps : // 기트 b. 이 m/기 tぁb-오 rg/오메니부 s-기 tぁb/bぉb/마s r/레아 D메. md

덧붙여서 gitlab.rb로 설정을 변경했을 경우는 재기동하지 않으면 반영되지 않는다.
# gitlab-ctl reconfigure
# gitlab-ctl restart

아파치와 공존하고 싶다



하고 싶습니다. 그 밖에도 여러가지 움직이고 있는 것입니다.

빨리 nginx의 포트를 변경하고 apache에서 리버스 프록시하고 락 친버전으로 해본다.
포트 8080은 유니콘이 사용하기 때문에 8888이라든가.
좀처럼 정보를 찾을 수 없어서 빠졌지만 이하 추기해도 로그를 확인하면 바뀌지 않았다.

/etc/gitlab/gitlab.rb
+ nginx['listen_address'] = '*'
+ ginx['port'] = 8888

부득이하게 chef의 template를 고쳐 썼다.

/opt/gitlab/embedded/cookbooks/gitlab/templates/default/nginx-gitlab-http.conf.erb
server {
    <% @listen_addresses.each do |listen_address| %>
-    listen <%= listen_address %>:<%= @port %>;
+    listen <%= listen_address %>:8888;
    <% end %>


반영
# gitlab-ctl reconfigure
# gitlab-ctl restart

서브디렉토리에서 운영하는 경우
/opt/gitlab/embedded/service/gitlab-rails/config/application.rb
에 기재된 대로,
# Relative url support
# Uncomment and customize the last line to run in a non-root path
# WARNING: We recommend creating a FQDN to host GitLab in a root path instead of this.
# Note that following settings need to be changed for this to work.
# 1) In your application.rb file: config.relative_url_root = "/gitlab"
# 2) In your gitlab.yml file: relative_url_root: /gitlab
# 3) In your unicorn.rb: ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab"
# 4) In ../gitlab-shell/config.yml: gitlab_url: "http://127.0.0.1/gitlab"
# 5) In lib/support/nginx/gitlab : do not use asset gzipping, remove block starting with "location ~ ^/(assets)/"
#
# To update the path, run: sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production
#
# config.relative_url_root = "/gitlab"

에서 해보면 좋다. 1점만 5) 부분은 아마 설명 부족하기 때문에 다음과 같이 하면 움직였다.

/opt/gitlab/embedded/cookbooks/gitlab/templates/default/nginx-gitlab-http.conf.erb
-location / {
+location /gitlab {
    alias /opt/gitlab/embedded/service/gitlab-rails/public;
    try_files uriuri/index.html $uri.html @gitlab;
}

# 消さないとアイコンがちゃんと表示されない
-  location ~ ^/(assets)/ {
-    root /opt/gitlab/embedded/service/gitlab-rails/public;
-    gzip_static on; # to serve pre-gzipped version
-    expires max;
-    add_header Cache-Control public;
-  }

이상.