2023/05/07 GItLab再構成の部分に一部追記しました。
こんにちは、nakayumc です。
最近、仕事でよく GitLab を使用する機会が多くなったので検証環境を作りました。その備忘録として残しておきます。
また、今回はコンテナレジストリ機能を使用するので、有効化する方法も記載しています。
環境
環境は以下の通りです。
今回は AlmaLinux 8.7 に GitLab CE をインストールします。
- OS: AlmaLinux Relese 8.7
- GitLab: GitLab-CE 15.11.0
IPアドレスなどは以下の表です。
役割 | IPアドレス | ホスト名 |
---|---|---|
GitLab | 10.32.64.1 | gitlab.int.nakayumc.com |
GitLab を gitlab.int.nakayumc.com
というドメインで動かす想定で、WEBアクセスは HTTPS
を使い、コンテナレジストリのポートは 5050/TCP
で動かします。
前提条件
以下の条件を満たしていることを前提としています。
- SELinux は
Permissive
か、Disabled
の状態であること。 - firewalld は、
http
,https
,5050/tcp
を開けておくか、firewalld が無効化されていること。
構築時は SELinux や firewalld などで引っかかる可能性があるので、適宜設定してください。
インストール
リポジトリの追加
まず、AlmaLinux の デフォルトリポジトリには GitLab が含まれていないため、リポジトリを追加します。
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
以下のようなメッセージが表示されれば成功です。
Generating yum cache for gitlab_gitlab-ce... Importing GPG key 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 Importing GPG key 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 Generating yum cache for gitlab_gitlab-ce-source... The repository is setup! You can now install packages.
次に、以下のコマンドを実行して、リポジトリが追加されていることを確認します。
yum repolist
以下のような出力が得られればOKです。
repo id repo name appstream Rocky Linux 8 - AppStream baseos Rocky Linux 8 - BaseOS extras Rocky Linux 8 - Extras gitlab_gitlab-ce gitlab_gitlab-ce gitlab_gitlab-ce-source gitlab_gitlab-ce-source
GitLab のインストール
次に、下記のコマンドを実行して、GitLab をインストールします。
時間がかかる場合があるので、気長に待ちましょう。
dnf install -y gitlab-ce
GitLab がインストールされると、以下のようなメッセージが表示されます。
タヌキのアイコン (実はキツネではないことを知ってましたか?) とロゴがかっこいいですね。
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=15-11 Verifying : gitlab-ce-15.11.0-ce.0.el8.x86_64 1/1 Installed: gitlab-ce-15.11.0-ce.0.el8.x86_64 Complete!
GitLab の設定
次に、GitLab の設定を行います。
ここで変更するのは、「ドメイン名の変更」と、「コンテナレジストリ機能を有効化」を行います。
設定ファイルは /etc/gitlab/gitlab.rb
にあります。
vi /etc/gitlab/gitlab.rb
ドメイン名の変更
以下のように、external_url
にドメイン名を設定します。
ここで注意が必要なのは、今回はHTTPSでアクセスするので https://
から始まるドメインを設定してください。
IPアドレスで構築したい場合は、ドメインの部分をIPアドレスに読み変えてください。
(32行目あたり)
# external_url 'http://gitlab.example.com' external_url 'https://gitlab.int.nakayumc.com'
コンテナレジストリ機能を有効化
次に、コンテナレジストリ機能を有効化します。
今回は、コンテナレジストリのポート番号を 5050
に設定します。
(861行目あたり)
# registry_external_url 'https://registry.example.com' registry_external_url 'https://gitlab.int.nakayumc.com:5050'
以上で、GitLab の設定は完了です。
GitLab の再構成
続いて、GitLab の再構成を行います。以下のコマンドを実行してください。
この操作は数分かかるので、気長に待ちましょう。
gitlab-ctl reconfigure
以下のような出力が得られればOKです。
Running handlers: [2023-04-28T12:30:09-04:00] INFO: Running report handlers Running handlers complete [2023-04-28T12:30:09-04:00] INFO: Report handlers complete Infra Phase complete, 13/852 resources updated in 03 minutes 57 seconds gitlab Reconfigured!
再構成時のエラー
2023/05/07 追記
設定ファイルを変更して、再構成すると以下のエラーが起きました。
[2023-05-07T14:06:14+09:00] ERROR: Running exception handlers There was an error running gitlab-ctl reconfigure: letsencrypt_certificate[gitlab.int.nakayumc.com] (letsencrypt::http_authorization line 6) had an error: RuntimeError: acme_certificate[staging] (letsencrypt::http_authorization line 43) had an error: RuntimeError: ruby_block[create certificate for gitlab.int.nakayumc.com] (letsencrypt::http_authorization line 110) had an error: RuntimeError: [gitlab.int.nakayumc.com] Validation failed, unable to request certificate, Errors: [{url: https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/6386713374/-CEe9A, status: invalid, error: {"type"=>"urn:ietf:params:acme:error:dns", "detail"=>"no valid A records found for gitlab.int.nakayumc.com; no valid AAAA records found for gitlab.int.nakayumc.com", "status"=>400}} ]
今回は、GitLabサーバを外に公開してないので「LetsEncrypt側から見えないよ」というエラーが起きています。
私の場合は、もう一度 gitlab-ctl reconfigure
コマンドを実行することでエラー解消されました。
それでも解消されない方は証明書を発行する必要があるので、以下のサイトが参考になると思われます。 blogs.networld.co.jp
GitLab にログインと動作確認
GitLab にログインするために、ブラウザからアクセスします。
ユーザ名は root
、パスワードは /etc/gitlab/initial_root_password
で確認できます。
cat /etc/gitlab/initial_root_password
リポジトリの作成
ログインができたら、グループとリポジトリを作成します。
今回はこのような構成にします。
- グループ名:
nakayumc
- リポジトリ名:
container
作成が出来ると、以下のような画面が表示されます。
コンテナレジストリの確認
コンテナレジストリは左のサイドバーから、Packages & Registries
を選択して、
「Container Registry
」という項目があれば、正常にコンテナレジストリが有効化されています。
まとめ
今回は、GitLab をインストールして、コンテナレジストリを有効化するまでを行いました。
GitLabのコンテナレジストリで遊んでみたい方は、ぜひ試してみてください。