GitLab 설치와 설정
GitLab 설치 하기. GitLab 은 무료로 사용가능한 git 저장소, ticket 시스템이다. github 의 오픈소스 버전으로 생각할 수 있지만 그것보다 많은 기능을 제공한다. 이 글에서는 gitlab 을 Ubuntu 20.04 LTS 에 설치와 설정에 대해서 알아보도록 하겠다.
준비
Gitlab 을 설치하기 전에 필요한 의존성 패키지들을 먼저 설치해 준다.
1 |
]$ sudo apt install -y ca-certificates curl |
메일을 사용할 경우에는 메일 서버를 설치해줘야 하지만 여기서는 제외한다.
Gitlab 설치를 위한 저장소 추가
gitlab 홈페이지에서는 각 리눅스 배포판에 맞춰 스크립트를 제공한다. Ubuntu 20.04 를 위해 제공해주는 스크립트를 실행해 준다.
1 |
]$ sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash |
Gitlab 설치
접속을 위한 도메인을 결정해야 한다. 그리고 gitlab 은 SSL 접속을 권장하지만, 꼭 필요한 것은 아니다. 설치를 할 시점에서 도메인을 정할 수 있다.
1 |
]$ sudo EXTERNAL_URL="http://gitlab.systemv.local" apt-get install gitlab-ce |
별문제가 없다면 설치가 정상적으로 진행이 된다.
Gitlab 설정
Gitlab 설정은 ‘/etc/gitlab/gitlab.rb’ 파일을 이용 한다. 여기서 뭔가 변경을 하면 다음과 같이 재설정을 해야 한다.
1 2 3 |
]$ sudo gitlab-ctl reconfigure ]$ sudo gitlab-rake gitlab:check ]$ sudo gitlab-ctl status |
접속 URL 바꾸기
접속 URL 은 설치시에 지정해 줬지만 나중에 바꿀 수 있다. gitlab.rb 파일을 열어 다음의 내용을 확인하고 바꾸면 된다.
1 2 |
]# vim /etc/gitlab/gitlab.rb external_url 'http://gitlab.systemv.local:8001' |
Grafana 비활성화
Gitlab 서버를 모니터링을 하기 위해서 Grafana 를 내장하고 있다. 이것을 비활성화를 하고 싶다면 다음과 같이 비활성화를 해준다.
1 2 |
]# vim /etc/gitlab/gitlab.rb grafana['enable'] = false |
Prometheus 모니터링 비활성화
Prometheus 는 서비스에 대한 모니터링을 수집해주는 프로그램이며 Time Series 데이터베이스다. Grafana 는 이 데이터베이스를 읽어서 그래프를 그려주는 것이다.
Prometheus 뿐만 아니라 서비스의 각 메트릭을 수집해주는 Exporter 들이 있는데, Gitlab 에서는 prometheus_monitoring 을 비활성화하면 모든 Exporter 들도 비활성화가 된다.
1 2 |
]# vim /etc/gitlab/gitlab.rb prometheus_monitoring['enable'] = false |
이렇게 한 후에 gitlab 을 reconfigure, restart 를 한 후에 gitlab 상태를 보면 다음과 같다.
1 2 3 4 5 6 7 8 9 |
]# gitlab-ctl status run: gitaly: (pid 548) 21022s; run: log: (pid 542) 21022s run: gitlab-workhorse: (pid 554) 21022s; run: log: (pid 544) 21022s run: logrotate: (pid 9780) 3021s; run: log: (pid 546) 21022s run: nginx: (pid 558) 21022s; run: log: (pid 551) 21022s run: postgresql: (pid 559) 21022s; run: log: (pid 552) 21022s run: puma: (pid 557) 21022s; run: log: (pid 553) 21022s run: redis: (pid 550) 21022s; run: log: (pid 543) 21022s run: sidekiq: (pid 556) 21022s; run: log: (pid 547) 21022s |
모니터링을 위한 export, prometheus 등의 프로세스가 없다.
업로드 용량 변경
Gitlab 은 nginx 를 웹서버로 사용한다. nginx 에서는 client_max_body_size 값으로 파일 업로드 용량을 결정하는데, 이것을 설정에서 바꾸면 된다.
1 2 3 |
]# vim /etc/gitlab/gitlab.rb nginx['enable'] = true nginx['client_max_body_size'] = '1G' # 1G upload size |
데이터 저장 디렉토리 변경
만일 데이터 저장 디렉토리를 변경하고 싶다면 다음의 설정을 바꾸면 된다.
1 2 3 4 5 6 7 8 9 |
]# vim /etc/gitlab/gitlab.rb ### For setting up different data storing directory ###! Docs: https://docs.gitlab.com/omnibus/settings/configuration.html#storing-git-data-in-an-alternative-directory ###! **If you want to use a single non-default directory to store git data use a ###! path that doesn't contain symlinks.** git_data_dirs({ "default" => { "path" => "/var/opt/gitlab/git-data" }, "alternative" => { "path" => "/opt/gitlab-data" } }) |
저장소를 “/opt/gitlab-data” 로 변경된다.
하지만, 만일 이미 저장소를 사용하고 있다면 다음과 같이 해줘야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
mkdir /opt/gitlab-data chown git:root /opt/gitlab-data # Prevent users from writing to the repositories while you move them. gitlab-ctl stop # Note there is _no_ slash behind 'repositories', but there _is_ a # slash behind 'git-data'. sudo rsync -av /var/opt/gitlab/git-data/repositories /opt/gitlab-data # Start the necessary processes and run reconfigure to fix permissions # if necessary sudo gitlab-ctl upgrade # Double-check directory layout in /opt/gitlab-data. Expected output: # repositories sudo ls /opt/gitlab-data/ # Done! Start GitLab and verify that you can browse through the repositories in # the web interface. sudo gitlab-ctl start |
자세한 것은 다음 링크를 참고한다.