시간나는대로 틈틈히 정리 합시다~~!!!

[GitLab] CentOS 7에 GitLab 설치 - 설치편 본문

IT

[GitLab] CentOS 7에 GitLab 설치 - 설치편

열심히 정리하자!! 2021. 5. 15. 18:18
반응형

GitLab 사이트에도 정말 잘 설명되어 있지만 직접 설치해보면서 시행착오를 겪은 부분들을 추가로 정리하려고 한다.

- 사이트 : https://about.gitlab.com/install/

 

Download and install GitLab

Learn about the various GitLab installation packages and downloads for Ubuntu, Debian, Docker, Google Cloud, and many more.

about.gitlab.com

 

사실 CentOS 8에 설치하고 싶었는데 네이버클라우드플랫폼에서 제공되는 버전이 7.8까지만 제공되어 CentOS 7에 설치를 진행했다.

- 서버 사양은

    -> 제일 저렴한 Micro 타입으로 (1 CPU, 1GB Memory, 50GB HDD 제공) GitLab 패키지 설치 40분 넘게 진행중이라 포기했다.

    -> 그래서 한단계 올려서 Compact 타입으로 (1 CPU, 2GB Memory, 50GB SSD 로 셋팅) GitLab 패키지 설치 진행했더니 약 10분정도만에 설치가 끝났다... 설치 이력에 warning 도 뜨고 Script 설치도 실패했다고 하면서 접속도 안되고 서버 부하도 심하고 해서 지웠다.

    -> 그래서 한단계 더 올려서 Standard 타입으로 (2 CPU, 4GB Memory, 50GB SSD 로 셋팅) GitLab 패키지 설치 진행했더니 정상적으로 완료 메시지 표시 되고 웹상에서 접속도 잘 된다.

- Remote로 접속 테스트도 하기 위해 Public IP 도 하나 신청해서 연결 했다. 

 

위 링크로 접속하여 CentOS 7 을 선택 해준다.

해당 버튼을 클릭 하면 맨 하단에 아래와 같이 CE or EE 라고 링크가 있다

 

설치하고자 하는 버전 링크를 잘 들어가서 보고 설치 해야 한다.

디폴트로 접속되는 페이지는 EE 버전

 

CE : 무료

https://about.gitlab.com/install/?version=ce

EE : 30일 Trial 이후 유료 ( CE 기능 외에 추가적인 기능들이 더 있다고 한다. )

https://about.gitlab.com/install/

 

난 공짜버전인 CE 버전을 설치 해본다.

 

먼저 설치를 진행 하면서 필요한 부가적인 것들을 설치 및 설정 한다.

아래 박스 내용은 사이트에 나와있는 내용이다.

sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

 

직접 서버에서 작업을 하는게 아닌 로컬 PC에서 Remote로 접속해서 설치를 진행하려면 필요하니까 설치 한다.

난 네이버클라우드플랫폼에 서버 하나 생성해서 하는거라 기본적으로 4개중에 뭐가 설치되어 있나 확인 해봤다.

    # rpm -qa curl policycoreutils-python openssh-server perl

curl, openssh-server, perl 이 설치되어 있더라!!

 

어쨋든 설치를 진행 해본다.(버전이 낮으면 알아서 신규 버전으로 업데이트 해준다.)

    # yum install -y curl policycoreutils-python openssh-server perl

신규로 설치한거, 업데이트한거가 마지막에 표시된다.

 

나머지 명령어도 실행해준다.

 

 

ssh 서버 실행 - Remote로 서버에 접근할꺼라 실행해준다.

 

sshd 서비스 활성화

    # systemctl enable sshd

 

sshd 서비스 실행

    # systemctl start sshd

 

 

방화벽 설정 - 필수는 아니라서 서비스를 내려도 된다.

 

방화벽에 http 오픈

    # firewall-cmd --permanent --add-service=http

 

방화벽에 https 오픈

    # firewall-cmd --permanent --add-service=https

그냥 입력 하다보니 firewallD is not running 이라고 표시된다.

그래서 상태를 확인해본다.

    # firewall-cmd --state

역시나 not running 이다.

 

방화벽 서비스 시작 후 다시 등록 요청하니까 정상적으로 등록이 되었다.

 

방화벽서비스 시작

    # systemctl start firewalld

   

http, https 접속 허용(--add 라고 입력해야 하는데 -add라고 입력해서 오류 한번 발생했다 ㅋㅋ .....)

    # firewall-cmd --permanent --add-service=http

    # firewall-cmd --permanent --add-service=https

   

방화벽 재시작

    # systemctl reload firewalld

 

 

방화벽에 등록된 정보 확인

    # firewall-cmd --permanent --list-all

어차피 앞단에 별도의 방화벽이 있어서 걍 중지 시켰다.(방화벽 설정은 필요할때 하면 된다.)

    # systemctl stop firewalld

 

 

메일서버 설치 PostFix

 

메일서버를 설치하라고 나온다.

외부 SMTP 서버를 사용할 수 있다면 구지 설치 안해도 된다.(아마 이미 설치되어 있을 수도 있다.)

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

우선 설치되어 있는지 확인이나 한번 해본다

    # rpm -qa postfix

이미 설치가 되어 있다... ㅎㅎ

그래도 걍 업데이트나 할 겸 쭉 진행 해본다.

 

설치

    # yum install postfix

 

활성화

    # yum enable postfix

 

서비스 시작

    # yum start postfix

 

활성화 한 후 실행해 보니 에러가 발생한다....

    Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe" for details.

 

상세 상태를 확인해보니 Active 부분이 failed 가 떨어졌다.

    # systemctl status postfix.service

설정 파일에 문제가 있는지 확인 한다.

    # postfix check

 

아래와 같이 오류 메시지가 발생한다.

    postfix: fatal: parameter inet_interfaces: no local interface found for ::1

::1은 IPv6에서 사용하는 주소로 IPv4에서는 127.0.0.1을 사용하기 때문에, 서버에서 IPv6를 사용하지 않으므로 hosts 파일의 해당부분을 주석처리 하면 된다.

 

hosts 파일 내용 수정

    # vi /etc/hosts

    -> '::1' 앞에 '#' 을 붙여줌

 

설정파일에 문제가 없는지 다시 체크

    # postfix check

 

아무것도 표시 안되었으니 정상으로 보고 postfix 서비스 시작

    # systemctl start postfix

 

프로세스 떠있는지 확인 해본다.

    # ps -ef | grep postfix

 

 

GitLab 레파지토리를 추가

 

CE 버전

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

 

EE 버전

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

 

 

Gitlab에서 제공되는 ShellScript 실행(CE버전 설치할꺼라 해당 명령어 실행)

    # curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

The repository is setup! You can now install packages. 라고 뜨면 된다.

 

 

 

GitLab 설치 시작

 

CE 버전

sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ce

 

EE버전

sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ee

 

역시나 난 CE 버전 설치할 꺼니까 해당 명령어 실행

EXTERNAL_URL에 입력된 값을 설치할때 참조해서 사용한다고 하여 Public IP 를 넣었다.

    # EXTERNAL_URL="http://49.50.174.13" yum install -y gitlab-ce

 

- Micro 타입 1CPU, 1GB Memory 로 설치 시 Complete 까지 표시 되지  않고 서버가 다운 되었다.

- Compact 타입 1CPU, 2GB Memory 로 설치 시 아래와 같이 warning이 떴다.

Compact 타입 1CPU, 2GB 서버 설치 시 

 

- Standard 타입 2CPU, 4GB Memory 로 설치 시 정상적으로 성공 했다.

Standard 타입 2CPU, 4GB 로 설치 시

 

 

GitLab 접속

 

브라우저에서 완료 메시지 표시된거에 있는것 처럼 사이트 접속 해보니 아래와 같이 신규 비밀번호를 셋팅하는 화면이 표시된다.

    http://49.50.174.13 

 

비밀번호 셋팅 후  로그인 페이지에서 로그인 하면 된다.

ID : root

PW : 셋팅한 비밀번호

 

로그인 후 메인페이지 

 

 

GitLab 설정 변경

 

GitLab 설정 중 가장 흔하게 변경할 여지가 있을꺼 같은 정리

 

설정 파일 오픈

    # vi /etc/gitlab/gitlab.rb

접속 URL 및 포트 변경

 

    변경할 위치로 이동 : '/external_url' 을 입력 후 엔터 (보기모드일 때 가능, 삽입 모드일 경우  esc키를 누른 후 바로 '/ + external_url' 을 타이핑 후 엔터) 를 누르면 된다.

    위에 설치할 때는 'http://49.50.174.13' 까지만 입력했었고 포트를 지정하려면 아래와 같이 'http://49.50.174.13:9001' 과 같이 입력 후 저장 해주면 된다. 

nginx 옵션을 통해 인증서 및 다양한 설정을 할 수 있다.

데이타 디렉토리 변경 : 디폴트는 /var/opt/gitlab/git-data

SMTP 설정

 

 

GitLab 명령어

 

수정한 config 파일 적용

    # gitlab-ctl reconfigure

GitLab 서비스 중지

    # gitlab-ctl stop

GitLab 서비스 시작

    # gitlab-ctl start

GitLab 서비스 재시작

    # gitlab-ctl restart

GitLab 삭제 ( 난 어차피 클라우드 서버라서 딱히 사용할 일이 없어서 실행은 안해봤지만 아래와 같이 하면 된다고 한다. )

    # gitlab-ctl uninstall

    # gitlab-ctl cleanse

    # gitlab-ctl remove-accounts

    # dpkg -P gitlab-ce || yum -y remove gitlab-ce

    # rm -rf /opt/gitlab

    # rm -rf /var/opt/gitlab

    # rm -rf /etc/gitlab

    # rm -rf /var/log/gitlab

반응형
Comments