GitLab インストール手順 (CentOS7)

はじめに

プロジェクト、ソースコードの管理ツールとしてGitLabを使う機会があったので、インストール手順を検証してみました。

前提条件

以下の前提条件で検証しています。

  • ハードウェア: VirtualBox上の仮想マシン
  • OS: CentOS 7.6 (1810) (Vagrantのcentos/7 boxを使用)
  • アプリケーション: GitLab Community Edition 12.6.1
  • 構築対象サーバはインターネットと疎通が取れること
  • 各手順はroot権限を持つユーザで実施

パッケージインストール

GitLabの動作に必要となる関連パッケージをインストールします。

# yum install -y curl policycoreutils-python

GitLabのリポジトリ設定スクリプトをダウンロードし、実行します。インストール後に、GitLabのリポジトリ設定ファイルが作成されていることを確認します。

# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
# ls -l /etc/yum.repos.d/gitlab_gitlab-ce.repo  
-rw-r--r--. 1 root root 773 Jan  2 06:12 /etc/yum.repos.d/gitlab_gitlab-ce.repo

登録したリポジトリからGitLabをインストールします。パッケージのサイズが700MB近くあるので、回線帯域が狭い場合は少し時間がかかります。

# yum install -y gitlab-ce

設定ファイルの変更

viなどのテキストエディタで、GitLabの設定ファイルを開きます。

# vi /etc/gitlab/gitlab.rb

設定変更内容は以下の通りです。
最低限の設定として、クライアント端末がGitLabにアクセスするときのURLを設定します。
クライアント端末がサーバの名前を解決できる場合はホスト名、そうでない場合はクライアント端末と疎通の取れるNICのIPアドレスを設定します。

external_url 'http://gitlab.example.com'
↓
external_url 'http://<GitLabサーバのホスト名 or IPアドレス>'

初期化処理

以下のコマンドを実行し、初期化処理を行います。コマンドは内部的に構成管理ツールのChefを呼び出しているようで、画面に出力されるログを確認すると、処理内容を見ることができます。この処理は数分ほどかかります。

なお、検証中にgitlab-ctl reconfigureのみ実行したところ、処理中にエラーが発生しました。(本記事末尾、参考情報を参照) そのため、最初の2行でLC_ALLLC_CTYPEの変数にロケールを指定しています。
今回、OSのプロビションにVagrant Cloudに公開されているboxを使用しているので、インストールDVDからインストールしたCentOSの場合はロケール指定は不要かもしれません。

# LC_ALL="en_US.UTF-8"
# LC_CTYPE="en_US.UTF-8"
# gitlab-ctl reconfigure

ファイアウォールの設定

firewalldを使用している場合は、ファイアウォールのルールを追加し、外部からの通信を許可します。許可対象の通信は以下の通りです。

  • http : クライアント → GitLabのHTTP通信
# firewall-cmd --add-service=http --zone=public --permanent
success
# firewall-cmd --reload
success

WebUIの設定

WebUIの初期設定を行うため、作業端末のWebブラウザを起動して以下のURLにアクセスします。

http://<GitLabサーバのホスト名 or IPアドレス>

(GitLabの)rootユーザのパスワードを設定します。「New password」と「Confirm new password」に同じパスワードを入力し、「Change your password」を押下します。

「User name or email」にrootと入力します。「Password」に、先ほど設定したパスワードを入力します。「Sign in」を押下します。

ログインが完了し、プロジェクト作成のチュートリアル画面が表示されればインストールは完了です。

参考情報

今回検証した際、GitLabの初期化処理の最中に以下のエラーが表示されました。メッセージを辿ると、initdb: invalid locale settings; check LANG and LC_* environment variablesの箇所が根本原因で、ロケール変数がシェルに存在しないためPostgreSQLのDB初期化コマンドが失敗しているようです。

ネット上の記事でGitLabインストール情報をいくつか調べましたが、このエラーが出ているものはそこまで多くないようなので、今回OSのプロビショニングにVagrantを使用したことが原因かもしれません。

There was an error running gitlab-ctl reconfigure:

execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8] (postgresql::enable line 85) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ----
STDOUT: The files belonging to this database system will be owned by user "gitlab-psql".
This user must also own the server process.
STDERR: initdb: invalid locale settings; check LANG and LC_* environment variables
---- End output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ----
Ran /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 returned 1

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です