0부터 Gitlab-CE를 시작하고 Pages를 공개할 때까지
5944 단어 GitLab-CIgitlab-pagesGitLab
소개
공식 문서
의외로 공식 문서대로 하고 있는 절차가 없었기 때문에 해 보았다.
아래 준비
검증용 인스턴스 시작
이번에는 GCP에서 CentOS7의 GCE 인스턴스를 시작하여 Gitlab 설치한다.
(여러 사정에 따라 버전 11.11.8에서 시도하고 있습니다)
$ sudo yum update
$ sudo yum install -y curl policycoreutils-python openssh-server
$ sudo systemctl enable sshd
$ sudo systemctl start sshd
$ sudo firewall-cmd --permanent --add-service=http
$ sudo systemctl reload firewalld
$ sudo yum install postfix
$ sudo systemctl enable postfix
$ sudo systemctl start postfix
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
$ sudo yum --showduplicates search gitlab-ce | grep 11.11.8
gitlab-ce-11.11.8-ce.0.el7.x86_64 : GitLab Community Edition (including NGINX, Postgres, Redis)
$ sudo yum install gitlab-ce-11.11.8-ce.0.el7.x86_64
$ sudo vi /etc/gitlab/gitlab.rb
(external_url 'http://xxx.xxx.xxx.xxx/' GIPを設定)
$ sudo gitlab-ctl reconfigure
우선, 액세스할 수 있는 것을 확인.
Gitlab Pages 프로젝트 만들기
평가판 프로젝트를 만듭니다.
검증용 인스턴스 시작
이번에는 GCP에서 CentOS7의 GCE 인스턴스를 시작하여 Gitlab 설치한다.
(여러 사정에 따라 버전 11.11.8에서 시도하고 있습니다)
$ sudo yum update
$ sudo yum install -y curl policycoreutils-python openssh-server
$ sudo systemctl enable sshd
$ sudo systemctl start sshd
$ sudo firewall-cmd --permanent --add-service=http
$ sudo systemctl reload firewalld
$ sudo yum install postfix
$ sudo systemctl enable postfix
$ sudo systemctl start postfix
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
$ sudo yum --showduplicates search gitlab-ce | grep 11.11.8
gitlab-ce-11.11.8-ce.0.el7.x86_64 : GitLab Community Edition (including NGINX, Postgres, Redis)
$ sudo yum install gitlab-ce-11.11.8-ce.0.el7.x86_64
$ sudo vi /etc/gitlab/gitlab.rb
(external_url 'http://xxx.xxx.xxx.xxx/' GIPを設定)
$ sudo gitlab-ctl reconfigure
우선, 액세스할 수 있는 것을 확인.
Gitlab Pages 프로젝트 만들기
평가판 프로젝트를 만듭니다.
New Project
버튼을 꽉 누르십시오. Create from template
에서 PagesPlain HTML
의 Use template
를 포치한다. 
3. 적절하게 이름을 지정하고
Create project
를 누릅니다.
할 수 있었다.
Gitlab Runner 활성화
CI 환경이 필수이므로 활성화한다.
CI/CD
를 선택합니다. Runners
섹션을 확장한다. URL
과 token
를 삼가한다. 
4. CentOS에서 또 하나의 GCE 인스턴스를 생성.
$ sudo yum update
$ curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
$ sudo yum install gitlab-runner
$ sudo yum install docker
$ sudo systemctl start docker
$ sudo systemctl enable docker
$ sudo systemctl start gitlab-runner
$ sudo systemctl enable gitlab-runner
$ sudo gitlab-runner register
Runtime platform arch=amd64 os=linux pid=6360 revision=de7731dd version=12.1.0
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://xxx.xxx.xxx.xxx/ ← 控えたURL
Please enter the gitlab-ci token for this runner:
xxxxxxxxxxxxxxxxxxxx ← 控えたtoken
Please enter the gitlab-ci description for this runner:
[hori-test-gitlab-runner]:
Please enter the gitlab-ci tags for this runner (comma separated):
← とりあえずタグは未指定(そのままEnter)
Registering runner... succeeded runner=UhtBLpGi
Please enter the executor: custom, docker, docker-ssh, shell, virtualbox, parallels, ssh, docker+machine, docker-ssh+machine, kubernetes:
docker
Please enter the default Docker image (e.g. ruby:2.6):
centos:latest
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
Gitlab 콘솔에서 확인하면 추가되었습니다.

Pages 활성화
DNS 설정
DNS에서 방금 만든 Gitlab의 GIP와 도메인의 A 레코드를 추가.
설정 파일 변경
Gitlab 인스턴스에서 작업.
/etc/gitlab/gitlab.rb
에서만 편집pages_external_url "http://pages.hogehoge.work/"
gitlab_pages['enable'] = true
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
배포
Gitlab 콘솔 프로젝트 내에서 작업.
CI/CD
의 Pipelines
를 엽니다. Run Pipeline
를 누릅니다. Run Pipeline
를 누른다. passed
표시되고 배포 성공. Settings
의 Pages
에는 URL가 있기 때문에 클릭. 
SSL 대응
전용으로 와일드 카드 증명서가 필요. (높음)
여기의 예라면
*.pages.hogehoge.work
를 구입하십시오.설정 방법
Gitlab 인스턴스에서 작업.
hoge.crt
를 준비. intermediate.crt
를 준비. cat hoge.crt intermediate.crt >> /etc/gitlab/ssl/hogehoge.crt
실행. hoge.key
를 /etc/gitlab/ssl/
아래에 복사. /etc/gitlab/gitlab.rb
에서만 편집pages_external_url "https://pages.hogehoge.work/"
←https로 변경했다. pages_nginx['enable'] = true
pages_nginx['redirect_http_to_https'] = true
pages_nginx['ssl_certificate'] = "/etc/gitlab/ssl/hogehoge.crt"
pages_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/hoge.key"
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
결론
돈이 없어 증명서 살 수 없었기 때문에, 다음번은 12에 버전 업 해 Let's Encrypt로 SSL화를 시험하고 싶다.
Reference
이 문제에 관하여(0부터 Gitlab-CE를 시작하고 Pages를 공개할 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/horit/items/a4e3c0888ab7f5ab2f2a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(0부터 Gitlab-CE를 시작하고 Pages를 공개할 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/horit/items/a4e3c0888ab7f5ab2f2a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)