Git を用いたプロジェクト開発を複数人で行う場合、サーバーでレポジトリ管理を行えると便利です。何らかの事情で GitHub や Bitbucket を利用できない場合は、サーバーを構築して GitLab をインストールします。ここでは特に CentOS 6 の場合についてインストール手順をまとめます。
コマンドを実行するサーバーの用意
個人的な検証用途であれば Vagrant や VirtualBox を用いてサーバーを構築します。メモリが少ないとインストールに時間がかかったりします。
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
ドキュメントにも記載のとおり、redis
や psql
は 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
です。ログイン後に他の名前に変更できます。
設定変更
インストール時に表示される以下のメッセージのとおり /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
関連記事
- MySQL を CentOS 6 にソースコードからインストールする手順ダウンロード 無償で利用できる MySQL Community Server を入手します。こちらのページにアクセスします。「Generally Available (GA) Releases」→「Select Platform: Source Code」→「Generic Linux (Architecture Independent), Compressed TAR Archive」と選択して...
- CentOS 7 における Jenkins の導入手順 (Git Plugin のインストールまで)Jenkins は GUI の cron のようなツールです。いわゆる CI (continuous integration) のために利用されます。cron と異なり様々な条件をフックして job を実行できます。実行後の挙動もカスタマイズ可能です。プラグインも豊富に提供されています。以下では CentOS 7 にインストールする手順をまとめます。 インストール 1. RPM のインストール 必...
- GitLab CI/CD Runner および .gitlab-ci.yml の設定例GitLab CI/CD について使い方を把握してみます。 検証用 GitLab の準備 簡単のため docker イメージを利用します。マウントしたディレクトリは、Docker エントリーポイントから実行される Chef によってプロビジョニングされます。 docker run \ --hostname localhost \ --publish 10443:443 --publish 10
- kubernetes で GitLab および GitLab Runner を実行する設定サンプルGitLab CI/CD 設定について、GitLab および GitLab Runner すべてを k8s 内で実行するサンプルを記載します。簡単のため minikube を利用します。 minikube config set memory 8192 minikube config set cpus 4 minikube start minikube ip 192.168.99.103 minik...
- Git 中級者になるためのコマンド集履歴にタグを付与する (git tag) 一覧表示 タグだけを一覧表示 $ git tag ログにタグ情報を付与して表示 $ git log --decorate=full 直近のコミットにタグを付与 コメントあり $ git tag -a v1.0 -m 'コメント' コメントなし $ git tag v1.0 過去のコミットにタグを付与 履歴を調査 $ git log