OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

GitLab Community Edition 13.10.3をRaspberry Pi 4 Model Bへインストール

カテゴリ:OSSセットアップ | ソフトウェア:GitLab | タグ:
最終更新日:2021/05/05 | 公開日:2021/04/28

目次

概要

 趣味で開発したアプリケーションのソースコード管理をするためにGitHubのような ウェブベースのGitリポジトリマネージャをRaspberry Pi4に入れて使えないかを探していると、 GitHubに似た名前のGitLabを発見しました。 ラズパイ4のARM64にも対応していて、かつRPMでも提供されているということでインストールしてみました。 OSにはCentOS 8.2.2004のARM64(aarch64)版を採用しています。

構成

サーバ・ハードウェア構成

 ハードウェアはRaspberry Pi 4 Model Bのメモリ4GBモデルを使用しました。 ハードウェアスペックは以下のとおりです。 記載を省略していますが、モニタ、キーボード、マウスもラズパイに接続しています。

■ハードウェアスペック
項目内容
SoCBroadcom BCM2711
CPUARM Cortex-A72 1.5GHz
GPUBroadcom VideoCore VI Dual Core 500MHz
メモリLPDDR4 SDRAM 4GB
有線ネットワークGigabit Ethernet
microSDカード(システム用)microSDHCカード 32GB

サーバ・ソフトウェア構成

OS

CentOS Linux release 8.2.2004 (Core) aarch64

ソフトウェア・パッケージ

  • postfix-3.3.1-12.el8.aarch64.rpm
  • gitlab-ce-13.10.3-ce.0.el8.aarch64.rpm

操作端末構成

OS

Windows 10 Pro バージョン 20H2

ソフトウェア

  • Microsoft Edge バージョン 90.0.818.46

環境構築

インストール

Postfixのインストール

 GitLabのメール通知機能として利用するためと思われますが、 公式サイト上でPostfixをインストールする手順になっていますのではじめにインストールします。

# dnf -y install postfix
メタデータの期限切れの最終確認: 0:01:34 時間前の 2021年04月27日 22時39分07秒 に実施しました。
依存関係が解決しました。
========================================================================================================================
 パッケージ                アーキテクチャー          バージョン                          リポジトリー             サイズ
========================================================================================================================
インストール中:
 postfix                   aarch64                   2:3.3.1-12.el8                      BaseOS                   1.4 M
依存関係のインストール中:
 libicu                    aarch64                   60.3-2.el8_1                        BaseOS                   8.7 M

トランザクションの概要
========================================================================================================================
インストール  2 パッケージ

ダウンロードサイズの合計: 10 M
インストール済みのサイズ: 38 M
パッケージのダウンロード:
(1/2): postfix-3.3.1-12.el8.aarch64.rpm                                                 416 kB/s | 1.4 MB     00:03
(2/2): libicu-60.3-2.el8_1.aarch64.rpm                                                  698 kB/s | 8.7 MB     00:12
------------------------------------------------------------------------------------------------------------------------
合計                                                                                    785 kB/s |  10 MB     00:13
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備              :                                                                                               1/1
  インストール中    : libicu-60.3-2.el8_1.aarch64                                                                   1/2
  scriptlet の実行中: libicu-60.3-2.el8_1.aarch64                                                                   1/2
  scriptlet の実行中: postfix-2:3.3.1-12.el8.aarch64                                                                2/2
  インストール中    : postfix-2:3.3.1-12.el8.aarch64                                                                2/2
  scriptlet の実行中: postfix-2:3.3.1-12.el8.aarch64                                                                2/2
Failed to get unit file state for postfix.service: Connection timed out

  検証              : libicu-60.3-2.el8_1.aarch64                                                                   1/2
  検証              : postfix-2:3.3.1-12.el8.aarch64                                                                2/2

インストール済み:
  libicu-60.3-2.el8_1.aarch64                               postfix-2:3.3.1-12.el8.aarch64

完了しました!

Postfixの自動起動設定と起動

インストール以外で何か設定する必要があるのかは書いてなくてわかりませんでしたが、 必要ならあとから設定できるので一旦Postfixのサービスを起動して、自動起動設定のみを 行っておきます。

# systemctl status postfix.service
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; disabled; vendor preset: disabled) ←自動起動無効
   Active: inactive (dead) ←停止状態
# systemctl enable postfix.service ←Postfixの自動起動有効化
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.
# systemctl start postfix.service ←Postfixの起動
# systemctl status postfix.service
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled) ←自動起動有効
   Active: active (running) since Tue 2021-04-27 22:49:24 JST; 5s ago ←起動状態
  Process: 2059277 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
  Process: 2059274 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
  Process: 2059262 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
 Main PID: 2059349 (master)
    Tasks: 3 (limit: 23888)
   CGroup: /system.slice/postfix.service
           tq2059349 /usr/libexec/postfix/master -w
           tq2059350 pickup -l -t unix -u
           mq2059351 qmgr -l -t unix -u

 4月 27 22:49:20 localhost systemd[1]: Starting Postfix Mail Transport Agent...
 4月 27 22:49:24 localhost postfix/master[2059349]: daemon started -- version 3.3.1, configuration /etc/postfix
 4月 27 22:49:24 localhost systemd[1]: Started Postfix Mail Transport Agent.

GitLab Community Editionのリポジトリ設定

 GitLabにはいくつかエディションが存在していて、エディションごとにYUMリポジトリが存在しています。 今回は無償版のCommunity EditionをインストールしますのでCommunity Edition用のリポジトリを設定します。

# cd /etc/yum.repos.d/
# vi gitlab_gitlab-ce.repo
ファイル名:/etc/yum.repos.d/gitlab_gitlab-ce.repo
※ファイルの新規作成※
[gitlab_gitlab-ce]
name=gitlab_gitlab-ce
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/8/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
       https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[gitlab_gitlab-ce-source]
name=gitlab_gitlab-ce-source
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/8/SRPMS
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
       https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

GitLab Community Editionのインストール

 YUMリポジトリの設定が終わったら、Red Hat 8系で新しく導入されたdnfコマンドを利用して GitLabのインストールを行います。コマンドに付与するオプションなどはYUMとの互換が保たれているようです。

# dnf -y install gitlab-ce
Extra Packages for Enterprise Linux Modular 8 - aarch64                                 724 kB/s | 557 kB     00:00
Extra Packages for Enterprise Linux 8 - aarch64                                         1.1 MB/s | 8.9 MB     00:08
gitlab_gitlab-ce                                                                        297  B/s | 862  B     00:02
gitlab_gitlab-ce                                                                        4.7 kB/s | 3.1 kB     00:00
GPG 鍵 0x51312F3F をインポート中:
 Userid     : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
 Fingerprint: F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
gitlab_gitlab-ce                                                                        5.6 kB/s | 3.8 kB     00:00
GPG 鍵 0xF27EAB47 をインポート中:
 Userid     : "GitLab, Inc. <support@gitlab.com>"
 Fingerprint: DBEF 8977 4DDB 9EB3 7D9F C3A0 3CFC F9BA F27E AB47
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
gitlab_gitlab-ce                                                                         35 kB/s | 156 kB     00:04
gitlab_gitlab-ce-source                                                                 398  B/s | 862  B     00:02
gitlab_gitlab-ce-source                                                                 4.7 kB/s | 3.1 kB     00:00
GPG 鍵 0x51312F3F をインポート中:
 Userid     : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
 Fingerprint: F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
gitlab_gitlab-ce-source                                                                 5.8 kB/s | 3.8 kB     00:00
GPG 鍵 0xF27EAB47 をインポート中:
 Userid     : "GitLab, Inc. <support@gitlab.com>"
 Fingerprint: DBEF 8977 4DDB 9EB3 7D9F C3A0 3CFC F9BA F27E AB47
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
gitlab_gitlab-ce-source                                                                  87  B/s | 296  B     00:03
依存関係が解決しました。
========================================================================================================================
 パッケージ                         Arch          バージョン                               リポジトリー           サイズ
========================================================================================================================
インストール中:
 gitlab-ce                          aarch64       13.10.3-ce.0.el8                         gitlab_gitlab-ce       843 M
アップグレード中:
 libsemanage                        aarch64       2.9-3.el8                                BaseOS                 160 k
依存関係のインストール中:
 checkpolicy                        aarch64       2.9-1.el8                                BaseOS                 338 k
 libatomic                          aarch64       8.3.1-5.1.el8                            BaseOS                  23 k
 policycoreutils-python-utils       noarch        2.9-9.el8                                BaseOS                 251 k
 python3-audit                      aarch64       3.0-0.17.20191104git1c2f876.el8          BaseOS                  84 k
 python3-libsemanage                aarch64       2.9-3.el8                                BaseOS                 124 k
 python3-policycoreutils            noarch        2.9-9.el8                                BaseOS                 2.2 M
 python3-setools                    aarch64       4.3.0-2.el8                              BaseOS                 528 k

トランザクションの概要
========================================================================================================================
インストール    8 パッケージ
アップグレード  1 パッケージ

ダウンロードサイズの合計: 847 M
パッケージのダウンロード:
(1/9): libatomic-8.3.1-5.1.el8.aarch64.rpm                                              242 kB/s |  23 kB     00:00
(2/9): python3-audit-3.0-0.17.20191104git1c2f876.el8.aarch64.rpm                        1.8 MB/s |  84 kB     00:00
(3/9): checkpolicy-2.9-1.el8.aarch64.rpm                                                2.0 MB/s | 338 kB     00:00
(4/9): policycoreutils-python-utils-2.9-9.el8.noarch.rpm                                1.4 MB/s | 251 kB     00:00
(5/9): python3-libsemanage-2.9-3.el8.aarch64.rpm                                        3.6 MB/s | 124 kB     00:00
(6/9): python3-setools-4.3.0-2.el8.aarch64.rpm                                          7.9 MB/s | 528 kB     00:00
(7/9): python3-policycoreutils-2.9-9.el8.noarch.rpm                                      16 MB/s | 2.2 MB     00:00
(8/9): libsemanage-2.9-3.el8.aarch64.rpm                                                1.9 MB/s | 160 kB     00:00
(9/9): gitlab-ce-13.10.3-ce.0.el8.aarch64.rpm                                           5.5 MB/s | 843 MB     02:33
------------------------------------------------------------------------------------------------------------------------
合計                                                                                    5.5 MB/s | 847 MB     02:34
警告: /var/cache/dnf/gitlab_gitlab-ce-f55a211e54a826aa/packages/gitlab-ce-13.10.3-ce.0.el8.aarch64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID f27eab47: NOKEY
gitlab_gitlab-ce                                                                        4.9 kB/s | 3.1 kB     00:00
GPG 鍵 0x51312F3F をインポート中:
 Userid     : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
 Fingerprint: F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
鍵のインポートに成功しました
gitlab_gitlab-ce                                                                        4.8 kB/s | 3.8 kB     00:00
GPG 鍵 0xF27EAB47 をインポート中:
 Userid     : "GitLab, Inc. <support@gitlab.com>"
 Fingerprint: DBEF 8977 4DDB 9EB3 7D9F C3A0 3CFC F9BA F27E AB47
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
鍵のインポートに成功しました
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備              :                                                                                               1/1
  アップグレード中  : libsemanage-2.9-3.el8.aarch64                                                                1/10
  インストール中    : python3-libsemanage-2.9-3.el8.aarch64                                                        2/10
  インストール中    : python3-setools-4.3.0-2.el8.aarch64                                                          3/10
  インストール中    : python3-audit-3.0-0.17.20191104git1c2f876.el8.aarch64                                        4/10
  インストール中    : libatomic-8.3.1-5.1.el8.aarch64                                                              5/10
  scriptlet の実行中: libatomic-8.3.1-5.1.el8.aarch64                                                              5/10
  インストール中    : checkpolicy-2.9-1.el8.aarch64                                                                6/10
  インストール中    : python3-policycoreutils-2.9-9.el8.noarch                                                     7/10
  インストール中    : policycoreutils-python-utils-2.9-9.el8.noarch                                                8/10
  scriptlet の実行中: gitlab-ce-13.10.3-ce.0.el8.aarch64                                                           9/10
  インストール中    : gitlab-ce-13.10.3-ce.0.el8.aarch64                                                           9/10
  scriptlet の実行中: gitlab-ce-13.10.3-ce.0.el8.aarch64                                                           9/10
  整理              : libsemanage-2.9-2.el8.aarch64                                                               10/10
  scriptlet の実行中: gitlab-ce-13.10.3-ce.0.el8.aarch64                                                          10/10
It looks like GitLab has not been configured yet; skipping the upgrade script.

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



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


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 setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

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

Help us improve the installation experience, let us know how we did with a 1 minute survey:
https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=13-10


  scriptlet の実行中: libsemanage-2.9-2.el8.aarch64                                                               10/10
  検証              : checkpolicy-2.9-1.el8.aarch64                                                                1/10
  検証              : libatomic-8.3.1-5.1.el8.aarch64                                                              2/10
  検証              : policycoreutils-python-utils-2.9-9.el8.noarch                                                3/10
  検証              : python3-audit-3.0-0.17.20191104git1c2f876.el8.aarch64                                        4/10
  検証              : python3-libsemanage-2.9-3.el8.aarch64                                                        5/10
  検証              : python3-policycoreutils-2.9-9.el8.noarch                                                     6/10
  検証              : python3-setools-4.3.0-2.el8.aarch64                                                          7/10
  検証              : gitlab-ce-13.10.3-ce.0.el8.aarch64                                                           8/10
  検証              : libsemanage-2.9-3.el8.aarch64                                                                9/10
  検証              : libsemanage-2.9-2.el8.aarch64                                                               10/10

アップグレード済み:
  libsemanage-2.9-3.el8.aarch64

インストール済み:
  checkpolicy-2.9-1.el8.aarch64                                  gitlab-ce-13.10.3-ce.0.el8.aarch64
  libatomic-8.3.1-5.1.el8.aarch64                                policycoreutils-python-utils-2.9-9.el8.noarch
  python3-audit-3.0-0.17.20191104git1c2f876.el8.aarch64          python3-libsemanage-2.9-3.el8.aarch64
  python3-policycoreutils-2.9-9.el8.noarch                       python3-setools-4.3.0-2.el8.aarch64

完了しました!

GitLabの設定

 GitLabの設定は gitlab.rb ファイルに集約されていますので、この設定ファイルを編集します。 今回は最低限必要な(と思われる)外部URLとタイムゾーンの2つを設定します。

 external_url を変更しない場合でも概ね問題なく操作できていましたが、 ユーザプロファイルの画像がリンク切れになっている部分があったり、 URLが不正で画面遷移しないケースがいくつかありました。 今回は家庭内のラズパイ4にGitLabをインストールして個人利用目的で動作検証しているので、 アクセスのためのFQDNも設定しておらず、IPアドレスでアクセスすることを想定しています。 そのため external_url もローカルIPアドレスを設定しています。

# cd /etc/gitlab/
# vi gitlab.rb
ファイル名:/etc/gitlab/gitlab.rb
※以下、該当箇所のみ変更※
external_url 'http://gitlab.example.com'
   ↓変更
external_url 'http://192.168.0.106'

# gitlab_rails['time_zone'] = 'UTC'
   ↓変更
gitlab_rails['time_zone'] = 'Asia/Tokyo' ←コメントアウトを外して変更

GitLabの再構成

 GitLabのインストールと設定ファイルの編集が完了したら再構成を行います。 再構成には16分程度かかりましたのでやや気長に待ちます。 再構成が終了すると、GitLabが起動して利用できる状態になっています。

# gitlab-ctl reconfigure
Starting Chef Infra Client, version 15.14.0
resolving cookbooks for run list: ["gitlab"]
Synchronizing Cookbooks:
  - gitlab (0.0.1)
  - logrotate (0.1.0)
  - package (0.1.0)
  - postgresql (0.1.0)
  - redis (0.1.0)
  - monitoring (0.1.0)
  - registry (0.1.0)
  - mattermost (0.1.0)
  - consul (0.1.0)
  - praefect (0.1.0)
  - gitaly (0.1.0)
  - gitlab-kas (0.1.0)
  - gitlab-pages (0.1.0)
  - letsencrypt (0.1.0)
  - nginx (0.1.0)
  - runit (5.1.3)
  - crond (0.1.0)
(中略)
  * runit_service[prometheus] action restart (up to date)
  * execute[reload prometheus] action run
    - execute /opt/gitlab/bin/gitlab-ctl hup prometheus
Recipe: monitoring::alertmanager
  * runit_service[alertmanager] action restart (up to date)
Recipe: monitoring::postgres-exporter
  * runit_service[postgres-exporter] action restart (up to date)
Recipe: monitoring::grafana
  * runit_service[grafana] action restart (up to date)

Running handlers:
Running handlers complete
Chef Infra Client finished, 585/1558 resources updated in 15 minutes 49 seconds

Notes:
It seems you haven't specified an initial root password while configuring the GitLab instance.
On your first visit to  your GitLab instance, you will be presented with a screen to set a
password for the default admin account with username `root`.

gitlab Reconfigured!

設定

GitLabのrootユーザのパスワード設定

 GitLabをインストールしたラズパイ4のIPアドレスにブラウザでアクセスします。 今回の検証ではラズパイ4のIPアドレスに 192.168.0.106 を設定しているので、 「http://192.168.0.106/」でアクセスしました。 初回アクセス時はrootユーザのパスワード変更を求められるので変更しておきます。

GitLabへのログイン確認

 rootユーザのパスワード変更を実施すると、続いてログイン画面が表示されるので rootユーザでログインしてみます。

 ログインできたら以下のような画面が表示されます。

参考にしたサイト