社内で使うためのGitLab環境を構築したときのメモです。
GitLabって日本語に対応してないんですよね。純日本人にはちょっととっつきにくいというか、みんなで使おうよっていって建てても英語だとみんな触りたがらないという。。。じゃ日本語化しましょう。っていうかGitHubにアップされているパッチがあったのでそれを使わせていただきます。
GitLabとredmineを連携する手順は以下にまとめています!
- 
															
													 - 
						
GitLabとRedmineが別サーバの場合の連携設定Part1
GitLabとRedmineが別のサーバとして構成されているときにリポジトリを連携する手順を紹介します。 SVN(Subversion)とRedmineを連携するときは、Redmineの設定でSubv ...
 
GitLabのバックアップとリストアについて以下にまとめています!
- 
															
													 - 
						
【GitLab】バックアップとリストア手順の覚書(保存版)
オンプレで手軽にGit環境を用意できるGitLabですが、ちゃんとバックアップとってますか? 構築したはいいけどバックアップが取れてなくて、ハードウェアが故障してバックアップとって無いことが発覚(泣) ...
 
GitLab 構築
環境
- CentOS 7.4
 - GitLab 9.1.4
 - Selinux無効
 
RubyのバージョンとかGitのバージョンとかは書きません。GitLabをインストールするときに全部自動でやってくれる。
GitLab インストール
日本語化とかGmailの設定とか以外の基本的な構築の部分は、GitLab公式 に手順があります。が、知ってないとわかりずらいことがあったり、今回は日本語化するためにそのままの手順ではできなかった。
まずは、順番に説明。
公式では、openssh-serverいれて、sshd いれて、postfix いれて・・・となっているけど、CentOSミニマムでどれも入っているのでスルーします。
また、今回はメールはGmailを使うのでpostfixは無効にします。社内のイントラで使うのでfirewalldも無効に。
| 
					 1 2  | 
						# systemctl disable postfix # systemctl disable firewalld  | 
					
続いて、リポジトリの追加をやってくれるスクリプトを実行します。便利です。
| 
					 1  | 
						# curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash  | 
					
↑のスクリプトのパス(URL)は公式のページのものとは違います。どこがちがうのかというと gitlab-ce と指定してます。GitLabって有償版もあるんですね。有償版は gitlab-ee です。恥ずかしながら知らなかったので、公式ページのコマンドをそのまま実行して次のgitlabインストールの時にうまくいかなくてあれ??ってなりました。。。無償版を使う場合は↑をそのままで大丈夫です。
次に、gitlab-ce をインストールするのですが、今回は日本語化したいという要件があります。日本語化パッチがGitHubにアップされていたのでそれを使わせてもらうことにしたのですが、9.1.4 までの対応となっています。対して、GitLab の最新Versionは10.2.x くらいです(2017/12現在)。開発者の方からは完全に一致するVersionじゃないと適用できない、とのことなので、GitLab本体の方のVersionを落として9.1.4をインストールすることにします。
そのために GitLabのページ から対象Versionのパッケージを探してインストールします。
| 
					 1  | 
						# yum install gitlab-ce-9.1.4-ce.0.el7.x86_64 --nogpgcheck  | 
					
--nogpgcheck のオプションは、パッケージ gitlab-ce-9.1.4-ce.0.el7.x86_64.rpm は署名されていません のエラーがでるので付けます。
以下のメッセージが出ればインストール完了です。らくちん。説明の通り、gitlab-ctl reconfigure を実行すればGitLabを起動できますが、今回は日本語化およびGmailの設定をするので、まだ起動しません。
Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by settingexternal_url
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
sudo gitlab-ctl reconfigureGitLabをインストールしていただきありがとうございます!
GitLabはインスタンスの有効なホスト名を検出できませんでした。
external_urlを設定してGitLabインスタンスのURLを設定してください
/etc/gitlab/gitlab.rbファイルの設定。
その後、次のコマンドを実行してGitLabインスタンスを起動することができます:
sudo gitlab-ctl reconfigure
日本語化
日本語化パッチは以下にアップされております。感謝。
https://github.com/ksoichiro/gitlab-i18n-patch
手順としては、パッチファイルをダウンロードして解凍して適用します。必要となる patchコマンドなどは入ってなければあらかじめインストールします。
| 
					 1 2 3 4 5 6  | 
						# yum install patch unzip wget # cd /usr/local/src # wget https://github.com/ksoichiro/gitlab-i18n-patch/archive/master.zip # unzip master.zip # cd /opt/gitlab/embedded/service/gitlab-rails # patch -p1 < /usr/local/src/gitlab-i18n-patch-master/patches/v9.1.4/app_ja.patch  | 
					
たったこれだけ。感謝。
Gmail の設定(+@)
今回はメールサーバを動かさずGmailを使っちゃいます。余計な設定・運用が不要で手間が省けます。
設定ファイルは、/etc/gitlab/gitlab.rb です。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | 
						 gitlab_rails['gitlab_email_enabled'] = true  gitlab_rails['gitlab_email_from'] = 'xxxx@gmail.com'  gitlab_rails['gitlab_email_display_name'] = 'xxxx(表示する名称)'  gitlab_rails['gitlab_email_reply_to'] = 'xxxx@gmail.com'  gitlab_rails['gitlab_email_subject_suffix'] = ''  gitlab_rails['smtp_enable'] = true  gitlab_rails['smtp_address'] = "smtp.gmail.com"  gitlab_rails['smtp_port'] = 587  gitlab_rails['smtp_user_name'] = "xxxx@gmail.com"  gitlab_rails['smtp_password'] = "パスワード"  gitlab_rails['smtp_domain'] = "smtp.gmail.com"  gitlab_rails['smtp_authentication'] = "login"  gitlab_rails['smtp_enable_starttls_auto'] = true  gitlab_rails['smtp_tls'] = false  | 
					
次に最低限の設定としてタイムゾーンの設定をします。
| 
					 1  | 
						gitlab_rails['time_zone'] = 'Asia/Tokyo'  | 
					
あと1点、URLの設定をしておきます。しなくても動きますが、ユーザを作成した時に指定したメールアドレス宛に飛ぶメールの中にGitLabのアクセスURLのリンクが記載されます。URLを指定しないとそのリンクからアクセスできないので、アクセスできないんだけど~という突っ込みがくることが予想されます。
| 
					 1  | 
						external_url 'http://hogehoge.com'  | 
					
イントラでIP運用の場合はIPを指定すればよいです。
| 
					 1  | 
						external_url 'http://192.168.1.10'  | 
					
ポートを変更する場合も同じくここで変更できます。デフォルトは80。
| 
					 1  | 
						external_url 'http://192.168.1.10:10080'  | 
					
設定は以上です。
これで起動します。
| 
					 1  | 
						# gitlab-ctl reconfigure  | 
					
/etc/gitlab/gitlab.rb のパラメータ変更後の反映をするときも↑のコマンドで設定反映できます。
WebUIの初期ログイン情報は以下です。
| 
					 1 2  | 
						Username : root Password : 5iveL!fe  | 
					
おまけ
GitLabのステータスを確認する。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14  | 
						# gitlab-ctl status run: gitaly: (pid 733) 223s; run: log: (pid 730) 223s run: gitlab-monitor: (pid 734) 223s; run: log: (pid 732) 223s run: gitlab-workhorse: (pid 719) 223s; run: log: (pid 718) 223s run: logrotate: (pid 731) 223s; run: log: (pid 729) 223s run: nginx: (pid 726) 223s; run: log: (pid 722) 223s run: node-exporter: (pid 736) 223s; run: log: (pid 727) 223s run: postgres-exporter: (pid 741) 223s; run: log: (pid 738) 223s run: postgresql: (pid 703) 224s; run: log: (pid 702) 224s run: prometheus: (pid 737) 223s; run: log: (pid 735) 223s run: redis: (pid 712) 224s; run: log: (pid 709) 224s run: redis-exporter: (pid 740) 223s; run: log: (pid 739) 223s run: sidekiq: (pid 710) 224s; run: log: (pid 708) 224s run: unicorn: (pid 717) 224s; run: log: (pid 704) 224s  | 
					
GitLab の情報を確認する。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31  | 
						# gitlab-rake gitlab:env:info System information System: Current User:   git Using RVM:      no Ruby Version:   2.3.3p222 Gem Version:    2.6.6 Bundler Version:1.13.7 Rake Version:   10.5.0 Redis Version:  3.2.5 Git Version:    2.11.1 Sidekiq Version:4.2.7 GitLab information Version:        9.1.4 Revision:       fed799a Directory:      /opt/gitlab/embedded/service/gitlab-rails DB Adapter:     postgresql URL:            http://192.168.1.10 HTTP Clone URL: http://192.168.1.10/some-group/some-project.git SSH Clone URL:  git@192.168.1.10:some-group/some-project.git Using LDAP:     no Using Omniauth: no GitLab Shell Version:        5.0.2 Repository storage paths: - default:      /var/opt/gitlab/git-data/repositories Hooks:          /opt/gitlab/embedded/service/gitlab-shell/hooks Git:            /opt/gitlab/embedded/bin/git  | 
					
以上です。
↓↓↓ 持っていると便利な一冊。
                                    