[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 이미지 입력