[Gitlab] AWS Gitlab-EE 구성

AWS 인스턴스 OS : CentOS 7

접속 방법 : https://twoseed.atlassian.net/wiki/pages/createpage.action?spaceKey=TWOS&title=AWS%20%EC%84%9C%EB%B2%84%20%ED%99%98%EA%B2%BD%20%EA%B5%AC%EC%84%B1 참조(ppk 파일은 필요 시 연락 바람)

 

AWS 서버에 Gitlab 설치

Domain 설정

$ vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 gitlab.twoseed.com ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 gitlab.twoseed.com

 

GitLab 패키지 저장소 추가 및 패키지 설치

GitLab 패키지 저장소 추가

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

GitLab 패키지 설치

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

에러 발생. AWS 에서 SSL인증서 발급이 되지 않는 이슈 - 사설 SSL 인증서 적용 필요

 

SSL 인증서 생성

SSL 생성 및 복사

$ mkdir ~/ssl_create # 인증서를 발급할 폴더 생성 $ cd ~/ssl_create $ openssl genrsa -out server.key 2048 # 인증서 서명 요청(Certificate signing request) 파일 생성 $ openssl req -new -key server.key -out server.csr # 서버 인증서 파일 생성 Country Name (2 letter code) [XX]: KR State or Province Name (full name) []: Locality Name (eg, city) [Default City]: Seoul Organization Name (eg, company) [Default Company Ltd]: Twoseed Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []: gitlab.twoseed.com # Common Name은 반드시 도메인 설정과 똑같이 입력 Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: $ openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt # 인증서(crt) 파일 생성 $ mv server.crt gitlab.twoseed.com.crt $ mv server.key gitlab.twoseed.com.key $ cp gitlab.twoseed.com.crt /etc/gitlab/ssl/gitlab.twoseed.com.crt $ cp gitlab.twoseed.com.key /etc/gitlab/ssl/gitlab.twoseed.com.key

 

Let 's Encrypt 설정 해제 후 Gitlab 재구성

$ vi /etc/gitlab/gitlab.rb letsencrypt['enable'] = false # true를 false로 변경 $ gitlab-ctl reconfigure $ gitlab-ctl restart

 

브라우저 접속 확인

접속 URL : https://gitlab.twoseed.com

# PC의 hosts 파일에 등록 필요(C:\Windows\System32\drivers\etc\hosts)

 

Container Registry 생성

Docker 설치

Docker repository 등록

$ sudo yum install -y yum-utils $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Docker engine 설치

$ sudo yum install docker-ce docker-ce-cli containerd.io $ sudo systemctl start docker

 

Registy 설정 변경

$ vi /etc/gitlab/gitlab.rb registry_external_url 'https://gitlab.twoseed.com:5050' # registry url 설정(5050 port 오픈 필요) $ gitlab-ctl reconfigure $ gitlab-ctl restart

 

Registry 접속 확인

$ docker login gitlab.twoseed.com:5050 Username: root # gitlab 접속 계정 입력 Password: # 계정 비밀번호 입력 WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded

 

Gitlab-runner 설치 및 등록

Gitlab-runner 설치

GitLab-runner repository 추가

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

 

GitLab Runner 설치

sudo yum install gitlab-runner

 

SSL 인증서 복사

$ mkdir /etc/gitlab-runner/certs $ cp /etc/gitlab/ssl/gitlab.twoseed.com.crt /etc/gitlab-runner/certs/

 

Gitlab-runner 등록

Gitlab 브라우저 설정에서 러너 등록에 필요한 정보 확인

 

Gitlab-runner 등록

$ sudo gitlab-runner register Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com ) https://gitlab.twoseed.com # GitLab 인스턴스 URL 입력 Please enter the gitlab-ci token for this runner xxx # Runner 등록에 필요한 토큰값 입력(위 스크린샷 참조) Please enter the gitlab-ci description for this runner [hostname] aws.internal # Runner에 대한 설명 입력(Runner 식별용) Please enter the gitlab-ci tags for this runner (comma separated): docker # Runner와 관련된 tag 입력 Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell: docker # 사용할 Runner executor 입력 Please enter the Docker image (eg. ruby:2.6): alpine:latest # 기본 Docker 이미지 입력