ソフトウェア

codebreak; がサービス終了しちゃうのでGitlabでプライベートなGitサーバーを構築することにした!

ssimage_19

ちょっと前に「codebreak; 」からサービス終了の通知が来ていた。

プライベートリポジトリが無料で作れたため重宝していたのだけれど、やっぱりこういうWEBサービスは終了と隣り合わせなんですね・・・。

とは言え、サービスの終了となる来年の1月31日までにどこかに環境を移さないといけません。

そこで以前ちょっとだけ使って使うのをやめていたGitlabを再度使おうかと思った次第です。

前に構築した時よりも随分と簡単になっているようですし、ちょうどさくらのVPSを新しく借りた所だったのでそこに構築しようと思います。

Gitlabってなに?

そもそもGitlabというものがなんなのか・・・ですが、GitHubのようなサービスを自前で構築することの出来るオープンソースになります。

全ての人へ向けてリポジトリ開放するならGitHubで良いのですが、プライベートなソース管理がしたいのでこのGitlabを使います。

Gitlab環境の構築

gitlab

さて、Gitlab環境を構築していきたいわけですが昔導入した感触で行くととても面倒だった記憶がありまして面倒故にバージョンアップするのすら嫌になり使わなくなりました。

しかしながらGitlabは絶えず進化しているようで、インストールが格段に簡単になっているようです。

以下は私が導入した時の流れになります。

説明不足な部分もあるかと思いますが、参考になればと思います。

インストールするサーバーの環境はCentOS6.7でNginxだけ現在動かしているものを使用する事にします。

公式ページに書いてある方法でそのままインストール

公式のDownloadページに書いてある方法にてインストールを行います。

OSによって手順が変わるためこの部分は公式ページの情報に合わせて行って下さい。

sudo yum install curl openssh-server postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh

上記は完了したらリポジトリを追加してインストール

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

ひとまずここまで正常に完了したらgitlab.rbを環境に合わせて編集します。

sudo vi /etc/gitlab/gitlab.rb

#########gitlab.rb###########
#接続URLを変更(自分の環境に合わせる)
external_url 'http://gitlab.hoge.jp'

#GitLab付属のUnicornを使う
unicorn['worker_timeout'] = 60
unicorn['worker_processes'] = 2

## Advanced settings
unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8080
unicorn['socket'] = '/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket'
unicorn['pidfile'] = '/opt/gitlab/var/unicorn/unicorn.pid'
unicorn['tcp_nopush'] = true
unicorn['backlog_socket'] = 1024
# We do not recommend changing this setting
# unicorn['log_directory'] = "/var/log/gitlab/unicorn"

#GitLab付属のRedisを使う
redis['enable'] = true
redis['username'] = "gitlab-redis"
redis['uid'] = nil
redis['gid'] = nil

#既存のNginxを使用するので付属のNginxは無効に
nginx['enable'] = false

#SSHのポートを変更している場合は下記
gitlab_rails['gitlab_shell_ssh_port'] = 10022

#########gitlab.rb###########

Nginxは既存のものを使用するようにしたので続けてNginxの設定ファイルを弄ります。

sudo vi /etc/nginx/conf.d/gitlab.conf

server {
listen 80;
server_name gitlab.hoge.jp;

access_log /var/log/nginx/gitlab.access.log;
error_log /var/log/nginx/gitlab.error.log;

location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }

### Reverse Proxy for Redmine on Unicorn
location / {
rewrite ^/(.*)$ /$1 break;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8080;
}
}

#ここまで終わったら設定を反映させる。
sudo gitlab-ctl reconfigure

#状態を確認
sudo gitlab-ctl status

#再起動するとき
sudo gitlab-ctl restart

特に問題なければこれでGitlabの環境は出来ているかと思います。

問題になりそうなのはNginxの部分だと思いますけど、既存のものがない状態であればデフォルトのままで大丈夫かと思います。

SSHのポート部分もハマるポイントかと思いますのでチェックが必要です。

この当たりの設定に関しては人によって様々になるようなので自分にあった設定にしましょう。

私はよくわからないからSSHのポート変更とNginxだけ既存の動いているものにしてあとはそのままな設定になっています。

あとはブラウザでアクセスしてみると、

ssimage_16

こんな感じのログイン画面出てきます。

ID「root」、PW「5iveL!fe」にてログインして色々と設定して下さい。

codebreak;のリポジトリをそのまま持ってこよう!

さて、環境が整ったのでリポジトリ作りたいですが・・・今までのリポジトリをそのまま持ってきたいのでインポート元を指定してリポジトリを作ります。

ssimage_17

codebreak;の場合は「ANY REPO BY URL」を選んで、

https://ユーザーID:パスワード@git.codebreak.com/hogehoge/hoge.git

このような形でURLを指定してあげると良いでしょう。

サーバースペックやリポジトリによって読み込み時間が変わるかと思いますが、ちゃんとインポートされています。

ssimage_18

ローカルファイルにCloneあれば.git/configのurl変えてPushしても同じだと思いますが、ローカルに無いならこっちのほうが楽かも知れないですね。

Gitlabのアップデート

前に使った時はアップデートが面倒だった記憶がありますが、現在はアップデートも簡単ですね。

#Gitlabをアップデートする
sudo yum update gitlab-ce

普通にyum使ってアップデート。これでファイルを取得してアップデートしてreconfigureしてrestartかかります。

念のためですが、アップデート行う前にバックアップ取ってたほうが良いでしょう。

Gitlabのバックアップとリストアに関してはこちらのページに書いてあるので確認して下さい。

とりとめのないまとめ

久々に使ってみたのですが、凄く進化してたんですね・・・。

アイコンもあのキモいユニークなものから変わってますし、何よりもインストールが楽になったのは嬉しいですね。

アップデートもストレス無く出来るようになり、嬉しい限りです。

なんといっても自前のサーバーで構築しているのでサービス終了に怯えることもありません!

ただ、その代わり運用しているサーバーがトラブった時等、色々と不安は尽きませんので当然ですが重要なものはちゃんと専用のサービスを使うことをオススメします^^

-ソフトウェア
-, , ,

Copyright© ENZO.NET(えんぞーどっとねっと) , 2020 All Rights Reserved.