前回に引き続き、Dockerを使ったGitLabについて触れていきます。
今回からは複数のGitLabサーバーでデータ共有を試してみたいと思います。今回はその事前準備としてGitLabサーバーのバージョンを合わせる作業を実施します。
なぜこの作業が必要になるかと言いますと、GitLabのデータは異なるバージョン同士のデータで互換性が無い為です。
異なるバージョン同士のGitLabサーバーでデータ共有しようとするとどうなるかはいずれ試してみたいとは思います。
現行のバージョンは13.10.x以上ですが、今回は例として13.8.1をインストールします。
#バージョンを指定してGitLabインストールを実施する(yum install版)
まずは事前準備としてGitLabに必要なパッケージを一括でインストールします。
インストール後、sshdとpostfixを有効化します。
※以降のコマンドは全てsudoを省略しています
yum install -y policycoreutils-python curl openssh-server openssh-clients postfix
systemctl enable sshd postfix
systemctl status sshd postfix #sshdとpostfixが「active (running)」になっていればOK
インストール完了後、firewallのhttp通信を許可設定します。
firewall-cmd --permanent --add-service=http
systemctl reload firewalld
firewallの設定が完了したら、GitLabのリポジトリを登録します。
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
ここまでは通常のGitLabインストール手順と同様です。
次はGitLabのインストールとなりますが、その前にyum installでバージョン指定してインストールする場合、以下のコマンドからインストールしたいバージョンのパッケージ名を調べます。
yum --showduplicates search gitlab-ce | grep <バージョン>
例:
yum --showduplicates search gitlab-ce | grep 13.8.1 #GitLab バージョン13.8.1の場合
gitlab-ce-13.8.1-ce.0.el7.x86_64 : GitLab Community Edition (including NGINX,
上記出力結果をyum install
コマンドの後ろに記述すればバージョン指定のインストールが可能となります。
例:
yum install -y gitlab-ce-13.8.1-ce.0.el7.x86_64 #GitLab バージョン13.8.1の場合
インストールが完了しましたら、初回のreconfigureを実行します。
gitlab-ctl reconfigure
しばらく待つとgitlab Reconfigured!
と表示されます。
gitlab-ctl status
コマンドで全てのサービスが「run」となっていれば完了です。
#バージョンを指定してGitLabインストールを実施する(docker install版)
Dockerからインストールする場合で、バージョン(tag)を指定してインストールする場合の書式は以下の通りとなっているようです。
単にタグをバージョンのナンバーにすれば良い訳ではなく、バージョンのナンバーの後ろに-ce.0
を含めています。
インストールしたいバージョンのGitLabが存在しているか、存在している場合のtag名を確認したい場合はDocker HubのGitLab公式から確認してみてください。
docker pull gitlab/gitlab-ce:<バージョン>-ce.0
例:
docker pull gitlab/gitlab-ce:13.8.1-ce.0 #GitLab バージョン13.8.1の場合
バージョン指定して取得したGitLabのイメージをインストールするにはこちらで実施したインストール方法と同じコマンドで実施します。
注意点としては最後に指定するタグ名はlatestではなく今回取得した対象タグ名に書き換えする必要があります。
docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 2002:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ce:<タグ名(例:13.8.1-ce.0)> #GitLab バージョン13.8.1の場合
上記コマンドでインストールを実行し、docker logs -f gitlab
コマンドでインストールの進行状況を確認すると、ループが発生するので、何度も繰り返しているなと思ったらctrl + cでキャンセルし、docker exec -it gitlab gitlab-ctl reconfigure
コマンドを実行します。
少し待つとgitlab Reconfigured!
と表示されます。
docker exec -it gitlab gitlab-ctl status
コマンドで全てのサービスが「run」となっていれば完了です。
#インストール後の確認(共通)
インストール完了後、http://<ホストのIPアドレス>
へアクセスし、rootでログインします。
無事ログインが出来たらhttp://<ホストのIPアドレス>/help
へアクセスします。
アクセスした先で想定通りのバージョンが表示されていれば完了です。
今回は以上です。
次回はバージョンを合わせたGitLabサーバー同士でデータの共有を試そうと思います。