GitLab インストール手順 (CentOS 6)
[履歴] [最終更新] (2018/11/02 12:05:56)
最近の投稿
注目の記事

概要

Git を用いたプロジェクト開発を複数人で行う場合、サーバーでレポジトリ管理を行えると便利です。何らかの事情で GitHub や Bitbucket を利用できない場合は、サーバーを構築して GitLab をインストールします。ここでは特に CentOS 6 の場合についてインストール手順をまとめます。

コマンドを実行するサーバーの用意

個人的な検証用途であれば VagrantVirtualBox を用いてサーバーを構築します。メモリが少ないとインストールに時間がかかったりします。

We also strongly recommend at least 4GB of free memory to run GitLab.
https://about.gitlab.com/installation/

インストールコマンド

GitLab Installation に記載の手順に従います。GitLab 専用の yum レポジトリをインストールするためのシェルスクリプトを実行します。

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

シェルスクリプトの内部では OS の判定などが行われます。CentOS は Red Hat Enterprise Linuxとの完全互換を目指したフリーのディストリビューションであり、以下のファイルで判定されます。

$ cat /etc/redhat-release 
CentOS release 6.6 (Final)

インストールされた yum レポジトリの設定ファイルは以下の場所にあります。

ls /etc/yum.repos.d/gitlab_gitlab-ce.repo

gitlab-ce をインストールします。

sudo yum info gitlab-ce
sudo yum install gitlab-ce

/opt/gitlab/ 以下に nginx, chef, rails, psql, redis 等のファイルが設置されたことが確認できます。

rpm -ql gitlab-ce | less

以下のコマンドで chef を実行して上記ソフトウェアをインストールします。

sudo gitlab-ctl reconfigure

前述のとおりメモリが少ないと以下のように 30 分もの時間がかかります。

...
Running handlers:
Running handlers complete
Chef Client finished, 362/511 resources updated in 30 minutes 17 seconds
gitlab Reconfigured!

[vagrant@localhost ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:           458        442         15          8          1         55
-/+ buffers/cache:        385         72
Swap:          927        601        326

ポート番号について

ポート番号の使用状況を netstat で調べると以下のようになっています。

sudo netstat -ltnp
  • 22 → ssh
  • 25 → postfix
  • 80 → nginx
  • 8080 → unicorn

ドキュメントにも記載のとおり、redispsql は UNIX ドメインソケットで通信します。OS ユーザーの gitlab-redis 権限で sudo してインストール済みの redis-cli を用いて接続するには以下のようなコマンドを実行します。

sudo -u gitlab-redis /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket

同様に psql については以下のようになります。gitlabhq_production データベースにソケットファイル経由で接続します。

sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -d gitlabhq_production

ドキュメントを参照すると、以下のコマンドでも接続できることが記載されています。

sudo gitlab-rails dbconsole

psql 簡易チートシート

接続

psql -h mydw.xxxx.us-east-1.redshift.amazonaws.com -p 5439 mydw username

データベース一覧 show databases

\l

ユーザ一覧 select user,host from mysql.user

\du

postgres データベースへの切り換え use

\c postgres

テーブル一覧 show tables

\dt

テーブル情報 desc

\d emails

現在のコネクションに関する情報を表示

\conninfo

終了 quit

\q

ページャを無効化する

\pset pager

MySQL の \G のように縦に表示する

\x

コマンドラインから実行

PGPASSWORD=xxxxxxxxxx psql -h mydw.xxxx.us-east-1.redshift.amazonaws.com -p 5439 mydw username -c "\dt"

PostgreSQL 発行された SQL のログ出力 (デバッグ用途)

postgresql.conf の場所を探します。

ps auxw | grep postgres

ログ出力の設定を追加します。

sudo vim /etc/postgresql/10/main/postgresql.conf

logging_collector = on
log_directory = '/tmp/psql_log'
log_statement = 'all'

サービスを再起動します。

sudo systemctl restart postgresql.service

ログインおよび設定

初回ログイン

初期パスワードを求められます。ユーザー名は root です。ログイン後に他の名前に変更できます。

Uploaded Image

設定変更

インストール時に表示される以下のメッセージのとおり /etc/gitlab/gitlab.rb を編集して再度 reconfigure すると設定を変更できます。公式ドキュメントを参考に設定します。

gitlab: GitLab should be reachable at http://localhost
gitlab: Otherwise configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
gitlab: And running reconfigure again.
gitlab: 
gitlab: For a comprehensive list of configuration options please see the Omnibus GitLab readme
gitlab: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
関連ページ
    概要 AWS Glue を利用すると Apache Spark をサーバーレスに実行できます。基本的な使い方を把握する目的で、S3 と RDS からデータを Redshift に ETL (Extract, Transform, and Load) してみます。2017/12/22 に東京リージョンでも利用できるようになりました