Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

OS 환경 : CentOS7

Gitlab 설치

참조 URL : https://docs.gitlab.com/ee/topics/airgap/quick_start_guide.html

AWS 도메인은 CA 정책으로 공인 인증서 발급이 제한 됩니다. 사설 인증서 이용한 설치 진행 하였습니다.

CentOS 7에 GitLab 설치 가이드에 따라 설치 합니다. EXTERNAL_URL 설치 단계에 http URL을 지정합니다. 설치되면 SSL을 직접 구성합니다.

sudo EXTERNAL_URL="http://ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com" install gitlab-ee

Docker 설치

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce
systemctl start docker && systemctl enable docker

SSL 활성화

  1. /etc/gitlab/gitlab.rb 파일 수정

    # external_url의 "http"를 "https"로 수정
    external_url "https://ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com"
    
    # Let's Encrypt를 false로 수정
    letsencrypt['enable'] = false
  2. 사설 인증서 생성

    sudo mkdir -p /etc/gitlab/ssl
    sudo chmod 755 /etc/gitlab/ssl
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/gitlab/ssl/ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com.key -out /etc/gitlab/ssl/ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com.crt
  3. 변경 사항 적용

    sudo gitlab-ctl reconfigure

GitLab Container Registry 활성화

  1. /etc/gitlab/gitlab.rb 파일 수정

    # external_registry_url을 external_url과 동일하게 구성 후 port를 4567로 지정
    external_url "https://ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com"
    registry_external_url "https://ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com:4567"
  2. 변경 사항 적용

    sudo gitlab-ctl reconfigure

GitLab Runner 설치

  1. 패키지 다운로드

    curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_amd64.rpm
  2. 시스템 패키지 설치

    rpm -i gitlab-runner_amd64.rpm

Docker 데몬이 Registry와 GitLab Runner를 신뢰하도록 사설 인증서 매칭

  1. Docker 데몬에 제공할 인증서 복사

    sudo mkdir -p /etc/docker/certs.d/ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com:5000
    sudo cp /etc/gitlab/ssl/ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com.crt /etc/docker/certs.d/ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com:5000/ca.crt
  2. GitLab Runner에 제공할 인증서 복사

    sudo mkdir -p /etc/gitlab-runner/certs
    sudo cp /etc/gitlab/ssl/ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com.crt /etc/gitlab-runner/certs/ca.crt

GitLab Runner 활성화

  1. GitLab Runner를 Docker 서비스로 설치

    sudo docker run --rm -it -v /etc/gitlab-runner:/etc/gitlab-runner gitlab/gitlab-runner register
    Updating CA certificates...
    Runtime platform                                    arch=amd64 os=linux pid=7 revision=1b659122 version=12.8.0
    Running in system-mode.
    
    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
    https://ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com   --> URL 입력
    Please enter the gitlab-ci token for this runner:
    XXXXXXXXXXX                                                    --> Gitlab 화면의 Runner Register용 Token 입력
    Please enter the gitlab-ci description for this runner:
    [eb18856e13c0]: docker-runner                                  --> runner 설명 입력
    Please enter the gitlab-ci tags for this runner (comma separated):
    aws, docker                                                    --> Tag 입력
    Registering runner... succeeded                     runner=FSMwkvLZ
    Please enter the executor: custom, docker, virtualbox, kubernetes, docker+machine, docker-ssh+machine, docker-ssh, parallels, shell, ssh:
    docker                                                         --> runner 동작 방식 입력
    Please enter the default Docker image (e.g. ruby:2.6):
    ruby:2.6                                                       --> default docker 이미지 입력
    Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
  2. /etc/gitlab-runner/config.toml 파일 수정

    [runners.docker]
    ...
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
    pull_policy = "if-not-present"
  3. Runner 실행

    sudo docker run -d --restart always --name gitlab-runner -v /etc/gitlab-runner:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest

호스트 OS에 대한 레지스트리 인증

Docker의 레지스트리 인증 설명서에 명시된 바와 같이 특정 버전의 Docker는 OS 레벨에서 인증서 체인을 신뢰해야합니다. 아래와 같이 설정해 줍니다.

cp /etc/gitlab/ssl/ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com.crt /etc/pki/ca-trust/source/anchors/ec2-3-34-48-235.ap-northeast-2.compute.amazonaws.com.crt
update-ca-trust
  • No labels