GitLab

GitLab12.2.1をCentOS7.6にインストール

投稿日:2019年8月26日

  • 会社のコンプライアンス的にgithubが使えない
  • 個人開発しているプログラムを完全にプライベートで管理したい

GitLabを家庭や社内でオンプレで使えばこれらのニーズを満たすことが出来ます。

留意点としてGitLabをインストールするPCは最低4GByteのメモリが無いと動作が重くなります。快適に使うには最低8GByteはメモリを積んだ方がいいです。

またGitLabはバージョンアップサイクルが早く、インストール方法も頻繁に変わる為、インストールの際は公式サイトを参照してインストール手順を確認した方が無難です。

利用想定

  • 個人利用、または社内ネットワークに閉じたリポジトリを想定
  • ポートは18080を使用(80や8080はapacheやtomcatが使っているので)
  • インターネットに出さないのでHTTPS化はしない

インストール前の準備

依存モジュールインストール

# yum install -y curl policycoreutils-python openssh-server
# systemctl enable sshd
# systemctl start sshd

postfixのインストール

マージリクエスト通知他をメールで送信する用。mattermostなど他の通知手段を使うなら不要ですが一応入れます。大概既にインストールされているはず。

# yum install postfix
# systemctl enable postfix
# systemctl start postfix

18080ポート開放

GitLabはデフォルトでは80ポートを使いますが、インストール時に18080に変更します。

# firewall-cmd --add-port=18080/tcp --zone=public --permanent
success
# firewall-cmd --reload
success

インストール

gitlabのyumリポジトリ情報を追加

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

    (snip)

Importing GPG key 0xE15E78F4:
 Userid     : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
 Fingerprint: 1a4c 919d b987 d435 9396 38b9 1421 9a96 e15e 78f4
 From       : https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey
Generating yum cache for gitlab_gitlab-ee-source...

The repository is setup! You can now install packages.

/etc/yum.repos.dにgitlab_gitlab-ce.repoが入り、yum installの準備が出来ました。

gitlab-ceをyumインストール

シェル変数「EXTERNAL_URL」にインストール後のアクセスURLを設定することで、インストール後に別途設定する手間が省けるようになりました。

今回は「http://インストールPCのIP:18080/gitlab」でアクセスしたいので以下のように実行しています。

# EXTERNAL_URL="http://192.168.0.4:18080/gitlab" yum install -y gitlab-ce

   (snip)

  * service[grafana] action restart
    - restart service service[grafana]

Running handlers:
Running handlers complete
Chef Client finished, 530/1428 resources updated in 04 minutes 08 seconds
gitlab Reconfigured!

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.



     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/


Thank you for installing GitLab!
GitLab should be available at http://192.168.0.4:18080/gitlab

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

  検証中                  : gitlab-ee-12.2.1-ee.0.el7.x86_64                                                                            1/1

インストール:
  gitlab-ee.x86_64 0:12.2.1-ee.0.el7

完了しました!

インストール後に公開URLを変更したい場合は/etc/gitlab/gitlab.rbを編集します。

## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'http://192.168.0.4:18080/gitlab'

再設定後、gitlab-ctl reconfigureを実行すればgitlab.rbの設定がGitLabに反映されます。

動作確認

ブラウザでhttp://インストールPCのIP:18080にアクセスすると管理者ユーザ(root)のパスワード設定を求められるので、8桁以上のパスワードを設定します。

ログイン画面に遷移するので以下を入力。

  • Username or email : root
  • Password : 先ほど設定したパスワード

管理者でGitLabにログイン出来ました!

GitLabインストールは至れり尽くせり

GitLabをインストールすることが出来ました。書いたプログラムのバージョン管理はこれで完璧です。

GitLabはnginx、redis、rails、unicorn、PostgreSQL他多数のプログラムで構成されていて、以前はインストールするにはそれなりの知識が必要、ハマリポイントも有りました。

この煩わしさは自動インストール出来る、今回のインストールでも使用した「Omnibus」機能がリリースされた2015年から解消されています。

Omnibus機能は現在も改善が続けられていて、当初より更に簡単にインストールが出来るようになっています。バージョンの違いで上手く動かず、時間を浪費するようなことが無くなってありがたい限りです。

インストールが簡単、かつ機能的にもgithubに勝るとも劣らないオンプレGitLabは、完全プライベートなgitリポジトリが欲しい方のニーズに十二分に応えてくれます。

-GitLab
-

執筆者:

関連記事

社内プライベートMattermostを立ち上げてChatOpsする

社内開発チーム内のコミュニケーション、上手く行っていますか?メンバーが世界各地に散らばってないなくても、近くの席に座っていても、心は意外と離れているかも知れません。 以下でプライベートなGitLab1 …

GitLab Omunibus版のPostgreSQLに普通のpsqlコマンドで接続

GitLab Omunibus版でインストールされるビルトインPostgreSQLは、 TCP:5432ではなくホスト内でしか接続出来ないUnix Domain Socketで待機ローカルホストからO …

GitLab12.1からMySQLを捨ててPostgreSQLに一本化するらしい

オンプレSCMの旗手、GitLabから掲題のニュースが有りました。 2017年から公式発表があったことですが、GitLab 12.1からMySQLのサポートを止めるとのことです。 GitLab&nbs …

GitLab内のリポジトリをmirrorして引っ越しする

目次1 はじめに2 環境3 引っ越し開始3.1 ①GitLabで引っ越し先リポジトリを作っておく3.2 ②旧リポジトリのミラーリポジトリを開発用PCに作る3.3 ③ミラーリポジトリに入って内容物を確認 …

Mattermostのチャンネル発言数をMetabaseでビジュアル化する

オンプレGitLabでMattermostを使えるようにした後の活用法として、「ナレッジチャンネル」的な運用をしてチームの知識を共有する営みをしている開発現場も多いのではないかと思います。 ミーティン …

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯技術者として楽しく生きることを目指しています。デスマに負けず健康第一。