イントラ内にGitLab環境を構築

目次

概要

業務上の都合により社内にGit環境を構築したい状況になっておりまして、今回はイントラ内にGitLab環境を構築手順を整理しました。
インストールに多少時間は掛かるものの手順自体は簡単でした。が、いくつか躓いた所がありましたので、その辺も含めて紹介させていただければと思います。

なお、本記事は私本人がセットアップした手順を記載する物であり、正確性を保証するものではございません。本記事を参考にインストールされる場合は、自己責任でお願いします。

ゴール

大体こんなイメージです。
如何に素早く、ホストを汚さずに、不要になったらサクっと無くす事ができるかが重要です。

GitLab
docker
Ubuntu Desktop 24.04
VMWare Workstation
Windows Server

ちなみに、土台となるWindows ServerとVMWare Workstationはすでに社内にある環境で、今回の説明ではスキップさせていただきます。

Ubuntu Desktop 24.04のインストール

特に問題ないだろうと思っていましたが、結構詰まるポイントがあったので説明します。
インストーラーは公式サイトからダウンロード。特にデスクトップ環境が必要だったわけではないのですが、最初から日本語環境で進められるのでデスクトップ版にしました。

公式サイト
Desktop imageで64bit版をダウンロード。3GBちょっとです。

ここからVMWareの新しい仮想マシンの作成でインストーラーのisoファイルを選択して進めると思いますが、ここは一旦、「後でOSをインストール(S)」を選択します。
スペックは、メモリやCPUコア数少ないと時間が掛かって応答なし?になってしまう印象があったので、メモリ4G、CPUコア数8で開始しました。

ネットワークは環境に合わせばよいのですが、外部からブラウザ等でアクセスする為、ホストとは別のIPアドレスを割り当てる為にブリッジネットワークにしています。ホストと同じアドレスで良ければ、NATでも良いと思います。その他はデフォルトのままでOKです。

この状態で一度仮想マシンの作成を行うと、マシンが起動しBIOSメッセージで「Operationg System not found」で止まります。当然ですね、何もOSは無い状態です。

そこで、一旦パワーオフにして仮想マシンの設定画面を開き、オプションタブ > 詳細 > 「BIOSではなく EFIで起動(B)」にチェックを入れます。これです、BIOSではなくUEFIで起動しないと、インストールが進みません。

以前、古いWindowsノートPCにUbuntuを入れた際も、BIOSをUEFIに変更しないとインストールできなかったのですが、仮想環境もそれと同じと言う事のようです。これをやっていないと進めないと思いますので、このUEFIで起動する、と言う所が最大の躓きポイントに思います。

再度パワーONにしてインストールを進めます。大体30分位は掛かったと思います。

インストールのオプションで困る事は無いと思いますが、推奨するプロプライエタリなソフトウェアは、グラフィックやメディア関係なのでインストールしませんでした。通常のデスクトップPCとして使用するなら、あった方が良いかも知れませんね。

Ubuntuのセットアップ

Ubuntuが起動しましたら、初期セットアップなどしないといけないです。人によって色々だと思いますが、僕は以下のセットアップを行っています。

1.パッケージの最新化

$ sudo apt update
$ sudo apt upgrade
$ sudo apt autoremove

2.フォルダの英名化

$ LANG=C xdg-user-dirs-gtk-update

「Don’t ask me this again」にチェックを入れてUpdate Names。

3.日本語環境(インストール時に指定)

$ localectl status
$ sudo apt install language-pack-ja-base language-pack-ja
$ sudo localctl set-locale LANG=ja_JP.UTF-8

最初の確認コマンドで「System Locale: LANG=en_US.UTF-8」が返ってきていれば、日本語設定できているのでインストール等は不要です。
Desktop版はインストール時に言語設定するので、大体不要だと思います。

4.タイムゾーン設定(インストール時に指定)

$ timedatectl status
$ sudo timedatectl set-timezone ‘Asia/Tokyo’

タイムゾーンも同様です。Desktop版はインストール時に「Asia/Tokyo」を選んでいるはずです。

5.ファイアウォールの設定

$ sudo ufw enable
$ sudo ufw default deny
$ sudo ufw allow xx/tcp

SSHやブラウザアクセスなど、必要なポートを開けてください。

6.SSH

$ sudo systemctl status ssh
$ sudo apt install openssh-server
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bkup
$ sudo vi /etc/ssh/sshd_config
	PermitRootLogin no
	PasswordAuthentication yes
	PermitEmptyPasswords no
$ systemctl restart ssh

最初にstatus確認をすると、恐らくサービスが見つからないエラーが表示されると思います。openssh-server入れて、設定変更してサービスを起動します。

7.自動スリープ無効

$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

デスクトップ版なので、UIの設定からでもできると思います。

8.docker、composeのインストール

$ sudo apt install ca-certificates curl gnupg lsb-release
$ sudo mkdir -p /etc/apt/keyrings
$  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$  echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
$ sudo gpasswd -a $(whoami) docker
$ getent group docker
$ sudo chgrp docker /var/run/docker.sock
$ docker version
$ docker compose version
$ newgrp docker

dockerのインストールと、現在のユーザーをdockerグループに入れる設定です。

これで一通りセットアップは完了です。次は、GitLabをdockerで動かす設定です。

GitLabをdocker composeで動かす設定

まず規定ディレクトリを作ります。僕はそのまんま「gitlab」と言うディレクトリを作成しました。その中に入れるcompose.yamlは以下の通りです。
/home/[your user name]/gitlab/compose.yaml

services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://xxx.xxx.xxx.xxx:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
        nginx['listen_port'] = 80
    ports:
      - 8929:80
      - 2224:22
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'

「deocker compose up -d」でコンテナが起動されます。

volumsで指定されている、ホスト側にバインドされるconfig、logs、data等は、何も準備しなくても問題ありません。
設定の通りで、社内ネットワークから当該PC(Ubuntu Desktop)アドレスの8929ポートにブラウザでアクセスすると、コンテナ内の80ポートにフォワードされ、GitLabページが開きます。

初回起動時、5分程度時間が掛かりましたが、無事起動しました!
VMにUbnut入れる所が一番手間取りましたね。後は簡単でした。それではまた!

よかったらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次