[GitLab] Install - 폐쇄망(Offline)

Hognod·2023년 6월 21일

1. Prerequisites

1.1. GitLab 설치를 위해 필요한 .rpm 파일 List

perl Package

perl-5.16.3-297.el7.x86_64.rpm
perl-Carp-1.26-244.el7.noarch.rpm
perl-Encode-2.51-7.el7.x86_64.rpm
perl-Exporter-5.68-3.el7.noarch.rpm
perl-File-Path-2.09-2.el7.noarch.rpm
perl-File-Temp-0.23.01-3.el7.noarch.rpm
perl-Filter-1.49-3.el7.x86_64.rpm
perl-Getopt-Long-2.40-3.el7.noarch.rpm
perl-HTTP-Tiny-0.033-3.el7.noarch.rpm
perl-PathTools-3.40-5.el7.x86_64.rpm
perl-Pod-Escapes-1.04-297.el7.noarch.rpm
perl-Pod-Perldoc-3.20-4.el7.noarch.rpm
perl-Pod-Simple-3.28-4.el7.noarch.rpm
perl-Pod-Usage-1.63-3.el7.noarch.rpm
perl-Scalar-List-Utils-1.27-248.el7.x86_64.rpm
perl-Socket-2.010-5.el7.x86_64.rpm
perl-Storable-2.45-3.el7.x86_64.rpm
perl-Text-ParseWords-3.29-4.el7.noarch.rpm
perl-Time-HiRes-1.9725-3.el7.x86_64.rpm
perl-Time-Local-1.2300-2.el7.noarch.rpm
perl-constant-1.27-2.el7.noarch.rpm
perl-libs-5.16.3-297.el7.x86_64.rpm
perl-macros-5.16.3-297.el7.x86_64.rpm
perl-parent-0.225-244.el7.noarch.rpm
perl-podlators-2.5.1-3.el7.noarch.rpm
perl-threads-1.87-4.el7.x86_64.rpm
perl-threads-shared-1.43-6.el7.x86_64.rpm

gitlab Package

gitlab-ce-16.0.1-ce.0.el7.x86_64.rpm

1.2. .rpm 파일 Download

폐쇄망 환경에 GitLab을 설치하기 위하여 외부 접근이 가능한 환경에서 필요한 .rpm 파일 Download

mkdir gitlab-installer
cd gitlab-installer

http://mirror.centos.org/centos/7/os/x86_64/Packages/

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-5.16.3-297.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Carp-1.26-244.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Encode-2.51-7.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Exporter-5.68-3.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-File-Path-2.09-2.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-File-Temp-0.23.01-3.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Filter-1.49-3.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Getopt-Long-2.40-3.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-HTTP-Tiny-0.033-3.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-PathTools-3.40-5.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Pod-Escapes-1.04-297.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Pod-Perldoc-3.20-4.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Pod-Simple-3.28-4.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Pod-Usage-1.63-3.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Scalar-List-Utils-1.27-248.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Socket-2.010-5.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Storable-2.45-3.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Text-ParseWords-3.29-4.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Time-HiRes-1.9725-3.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-Time-Local-1.2300-2.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-constant-1.27-2.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-libs-5.16.3-297.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-macros-5.16.3-297.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-parent-0.225-244.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-podlators-2.5.1-3.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-threads-1.87-4.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-threads-shared-1.43-6.el7.x86_64.rpm

https://packages.gitlab.com/gitlab/gitlab-ce/

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-16.0.1-ce.0.el7.x86_64.rpm/download.rpm

1.3. 패키지 파일 폐쇄망 서버에 전송

gitlab-installer 디렉토리를 scp 명령어등을 이용하여 GitLab 설치를 위한 폐쇄망 환경의 서버에 전송

scp -r ../gitlab-installer <gitlab server account>@<gitlab server ip>:

2. Install GitLab

폐쇄망 환경의 서버에 접속 및 Download받은 패키지 파일을 이용하여 perl, gitlab 설치 진행
(패키지 파일별로 의존성이 존재하므로 아래 순서대로 설치 진행)

cd gitlab-installer
sudo yum install -y perl*.rpm
sudo yum install -y gitlab-ce-16.0.1-ce.0.el7.x86_64.rpm

3. Set up GitLab

3.1. GitLab 접속 URL 및 인증서 지정

sudo vi /etc/gitlab/gitlab.rb
---- 생략 ----
external_url '<https://gitlab.example.com>'
---- 생략 ----
nginx['ssl_certificate'] = "<.crt 파일의 경로>"
nginx['ssl_certificate_key'] = "<.key 파일의 경로>"
  • external_url: GitLab 서버가 사용할 Domain 지정
  • nginx['ssl_certificate']: external_url에 지정한 Domain에 적용된 인증서의 .crt 파일의 경로 지정
  • nginx['ssl_certificate_key']: external_url에 지정한 Domain에 적용된 인증서의 .key 파일의 경로 지정
sudo gitlab-ctl reconfigure

3.2. (Option) 타 프로그램과의 연동이 필요한 경우

GitLab과 타 프로그램과의 연결이 필요한 경우, 타 프로그램에서 사용중인 인증서나 해당 인증서를 발행한 CA를 GitLab에 등록해 주어야 정상적으로 연동된다.

.crt 파일을 /etc/gitlab/trusted-certs 경로에 넣은 후 GItLab 서버를 재설정해야 한다.

cp <CA의 .crt 파일> /etc/gitlab/trusted-certs
sudo gitlab-ctl reconfigure

3.3. GitLab 계정 생성

sudo gitlab-rails console -e production
user = User.where(id: 1).first
user.password='<Password 입력>'
user.password_confirmation='<Password 입력>'
user.save

0개의 댓글