はじめに
公式ドキュメント
意外と公式ドキュメント通りにやってる手順がなかったので、やってみた。
下準備
検証用インスタンス立ち上げ
今回は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環境が必須なので有効化する。
- Gitlabプロジェクトの設定から
CI/CD
を選択。 -
Runners
セクションを広げる。 -
URL
とtoken
を控える。
$ 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!
Pages有効化
DNSの設定
お使いのDNSにて、先ほど作ったGitlabのGIPとドメインのAレコードを追加。
- ワイルドカードドメインとGIPの例
- *.pages.hogehoge.work
- 35.241.261.50
設定ファイル変更
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があるのでクリック。 - Pages表示される!!
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化を試したい。