Git講座の中で授業では扱わないものの、閉じたネットワークでGitHubサーバーのようなサーバーを構築される方もいますよ、ということでGitLabをご紹介していたりすることがあります。
口頭だけで授業ではあまり触れないので、今更ですが、こちらでどんなものかだけ軽くご紹介させていただきます。
今回はインストールまでになります。
GitLabとは
GitLabは、GitHubをもとに作られたMITライセンスのオープンソースのソフトウェアです。
大きく分けるとGitLab CE(Community Edition)とGitLab EE(Enterprise Edition)があり、
機能的にはほぼ同じものですが、CEは無料で使用することができます。
まずは試しに利用してみたいという形であればCEでも充分です。
公式サイト:https://about.gitlab.com/
GitHubを普通に利用しようとすると、GitHubのサービス上(クラウド上)でファイルなどをバージョン管理することになりますが、中には自分たちの閉じたネットワーク内で利用したいという方もいるかと思います。
そんな要望に、割と簡単に閉じたネットワーク内でGitHubのようなサービスを構築できるのがこのGitLabです。
閉じたネットワーク内にサーバーがあれば、そちらにこのGitLabをインストールすることで利用することができるようになります。
※AWSやGoogle Cloud Platformに構築することも可能です。
インストール方法
ではどうやって構築すればいいのか、基本的な構築方法は公式サイトに掲載されているので簡単に構築することができます。
https環境で利用したり、メールサーバーは外部のものを利用したりと組み合わせて利用する場合は別途追加作業が必要です。
また、v9.4より前のバージョンでは日本語設定ができないので、日本語パッチが必要となります。
インストール方法は公式サイトの以下を参考にコマンドを実行すれば構築できます。
今回は社内にCentOS7の環境があったので、そちらで試しに構築しています。
GitLabインストール 公式参考
https://about.gitlab.com/install/
上記からCentOS7を選択しています。
※今回は簡単にご紹介することが目的なので、rootユーザーで作業しちゃってます。
手順に従って、openssh-serverやsshd、postfixなど事前に必要なものなどをインストールしてサービスを起動して、ファイアウォールにhttpを追加して、など実施していきます。
yum install -y curl policycoreutils-python openssh-server systemctl enable sshd systemctl start sshd firewall-cmd --permanent --add-service=http systemctl reload firewalld yum install postfix systemctl enable postfix systemctl start postfix
そのあとリポジトリ追加を行います。
公式ではgitlab-eeとなっていてエンタープライズ版になっているので、gitlab-ceに変えて実行します。
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
その後GitLabのインストールですが、同時にコンフィグにGitLabサーバのアドレスを指定しています。
今回は他に利用が無いため単純にhttp://localhostとしましたが、すでに他にも利用しているなどの場合はポート番号を変えるなどします。
EXTERNAL_URL="https://xxx.xxx.xxx" yum install -y gitlab-ce
ここまででインストールは終了です。
ちゃんとやる場合はセキュリティ設定などしてあげてください。
この後環境に応じてコンフィグファイルを編集します。
送受信用のメールやメールサーバーの設定をgmailにされている方が多いので参考にいたしますと、コンフィグファイル内の以下箇所を有効にして値を変えていきます。ファイルはかなり長いので検索したほうがよいです。編集はviで!
cp -p /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb_org vi /etc/gitlab/gitlab.rb 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 gitlab_rails['time_zone'] = 'Asia/Tokyo'
では実際に起動させてみます。
gitlab-ctl reconfigure
すべてのサービスがrunになっていれば起動完了です。
gitlab-ctl status run: alertmanager: (pid 15974) 18349s; run: log: (pid 15658) 18373s run: gitaly: (pid 15819) 18352s; run: log: (pid 13971) 18516s run: gitlab-monitor: (pid 15889) 18351s; run: log: (pid 15361) 18391s run: gitlab-workhorse: (pid 15856) 18352s; run: log: (pid 14895) 18414s run: logrotate: (pid 13038) 405s; run: log: (pid 15076) 18404s run: nginx: (pid 14978) 18412s; run: log: (pid 15032) 18411s run: node-exporter: (pid 15877) 18352s; run: log: (pid 15250) 18399s run: postgres-exporter: (pid 16076) 18349s; run: log: (pid 15756) 18367s run: postgresql: (pid 14172) 18506s; run: log: (pid 14234) 18505s run: prometheus: (pid 15935) 18350s; run: log: (pid 15549) 18379s run: redis: (pid 13798) 18523s; run: log: (pid 13879) 18521s run: redis-exporter: (pid 15916) 18352s; run: log: (pid 15457) 18386s run: sidekiq: (pid 14751) 18425s; run: log: (pid 14798) 18424s run: unicorn: (pid 14648) 18431s; run: log: (pid 14728) 18428s
もしかしたら起動の途中で、「ruby_block[supervise_redis_sleep] action run」というところで止まってしまう場合がありますが、この場合は別途「gitlab-runsvdir」を起動させてあげるなどすると動き出しますので、インストールする際はCentOSをGUIモードで立ち上げ、端末を利用する形でインストール作業を行うと、
複数端末画面を立ち上げられるので作業がしやすいかもしれません。
この時は別端末で
systemctl start gitlab-runsvdir
を実行してgitlab-runsvdirを起動させて続きを実施していきました。
実際にブラウザでURL(今回はhttp://localhost)を入力すると
GitLabの初期画面が起動し、初期ID(root)、PASS(5iveL!fe)を入力すると、
変更用パスワードの入力を促され、変更後に正式にログインして利用できるようになります。
日本語パッチを入れる場合もパッチのサイトを参考に導入できます。
今回は未実施です。
日本語パッチサイト
https://github.com/ksoichiro/gitlab-i18n-patch
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/v11.7.0/app_ja.patch
※パッチのバージョンはGitLabのバージョンと一緒のものを入れてください。
GitLab本体のバージョンまでパッチの開発バージョンが届いていない場合がありますので、
その場合はGitLab本体のバージョンをダウングレードするなどしてバージョンを合わせます。
プリコンパイル
cd /opt/gitlab/embedded/service/gitlab-rails rm -rf public/assets export PATH=/opt/gitlab/embedded/bin:$PATH bundle exec rake assets:precompile RAILS_ENV=production
設定反映
gitlab-ctl reconfigure
ということで、Git講座で軽く触れるGitLabについて、インストール方法のご紹介でした。
GitLabの画面についてはまた次回にでもご紹介いたします。
GitやGitHubをまだ利用したことがない方、これから利用してみようと考えている方はAkrosの短期講座のGit講座からご受講してみてはいかがでしょうか。
また、他のスキルと併せてマンツーマンのプロ講座の中でももちろん学べます。
講義の内容とは被らないためご紹介させて頂きます。
https://qiita.com/nkojima/items/239fdc3a48ef1b0a4da0
自ら取り組む姿勢は大変すばらしいですね!
ぜひ皆さんもご参考ください。