GitLab Community Edition 13.10.3をRaspberry Pi 4 Model Bへインストール
目次
概要
趣味で開発したアプリケーションのソースコード管理をするためにGitHubのような ウェブベースのGitリポジトリマネージャをRaspberry Pi4に入れて使えないかを探していると、 GitHubに似た名前のGitLabを発見しました。 ラズパイ4のARM64にも対応していて、かつRPMでも提供されているということでインストールしてみました。 OSにはCentOS 8.2.2004のARM64(aarch64)版を採用しています。
構成
サーバ・ハードウェア構成
ハードウェアはRaspberry Pi 4 Model Bのメモリ4GBモデルを使用しました。 ハードウェアスペックは以下のとおりです。 記載を省略していますが、モニタ、キーボード、マウスもラズパイに接続しています。
項目 | 内容 |
---|---|
SoC | Broadcom BCM2711 |
CPU | ARM Cortex-A72 1.5GHz |
GPU | Broadcom 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
※ファイルの新規作成※
[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
※以下、該当箇所のみ変更※ 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ユーザでログインしてみます。
ログインできたら以下のような画面が表示されます。