티스토리 뷰

DevOps/CI - CD

[NBP] CI / CD - Gitlab

김한성 2020. 6. 16. 10:55

Gitlab

 

▶Gitlab은 이슈, 코드 리뷰, CI 및 CD를 단일 UI로 통합하는 통합 제품입니다. 또한, Git의 원격 저장소 기능과 이슈 트래커 기능들을 제공하는 소프트웨어입니다.

Gitlab 도커 이미지는 CE(Community Edition)과 EE(Enterprise Edition) 버전이 있는데 CE 버전으로 설치하였습니다.

▶Team, Group 기능 별도로 제공되어 권한 관리에 용이합니다.


★ 이번 Gitlab도 마찬가지로 docker container로 올려 Traefik에 자동으로 연결해보겠습니다.

 

 

RUN Gitlab-ce Server

publish로 호스트에 연결된 컨테이너의 특정 포트를 외부에 노출시킵니다. 내부에서 사용할 포트와 실제 VM 포트번호를 맵핑해주는 옵션인데 우리는 Traefik에 연결해야하기때문에, 앞에서 base domain을 hskim.kr 로 했으므로 gitlab.hskim.kr로 주고 port는 똑같이 80으로 연결합니다.

docker run \
  --detach \
  --name gitlab \
  --network hskim-net \
  --publish 10022:22 \
  --publish 10080:80 \
  --restart always \
  --mount type=volume,src=gitlab-conf,dst=/etc/gitlab \
  --mount type=volume,src=gitlab-log,dst=/var/log/gitlab \
  --mount type=volume,src=gitlab-data,dst=/var/opt/gitlab \
  --label traefik.port=80 \
  --label traefik.frontend.rule=Host:gitlab.hskim.kr \
  gitlab/gitlab-ce

Gitlab config

▶ config 파일안에 설정 정보들이 들어있습니다. 바꾸기전에 백업 해놓습니다.

cd /data/volumes/gitlab-conf/_data/
sudo cp /data/volumes/gitlab-conf/_data/gitlab.rb /data/volumes/gitlab-conf/_data/gitlab.rb.bak

▶ external_url: 외부에서 접속할 url을 입력해줍니다. run할때 traefik.frontend.rule에 입력했던 도메인을 입력해 줍니다.

external_url 'http://gitlab.hskim.kr'
gitlab_rails['gitlab_ssh_host'] = 'gitlab.hskim.kr'
gitlab_rails['time_zone'] = 'Asia/Seoul'

Gitlab 접속

▶ 정상적으로 Gitlab container가 올라갔다면 아래 URL로 접속하면 접속 가능합니다.

 

http://gitlab.hskim.kr

▶ NBP 기준으로 서버의 Public_IP가 붙어 있어야 하며 Public_IP를 도메인 호스팅에 등록하여 아래와 같이 도메인을 추가해야 정상적으로 동작할 것입니다. (예시: whois)

  ★ 도메인 호스팅 업체에서 ASTRO를 허용하는 곳이 있다면 서비스가 생성될때마다 추가 안해줘도 되는데, whois는          ASTRO를 지원하지 않습니다.

 


참고

▶ 앞으로 ldap 연동해서 계정을 관리하기때문에 회원가입창 비활성화 하는 방법입니다.

(Admin Area > Settings > General > Sign-up restrictions > Sign-up enabled)

 

댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31