2020年5月13日水曜日

Gitlab Development Kit を使って Gitlab をソースコードインストールしたみた

概要

Gitlab Development Kit を使って Gitlab のインストールをソースコードから行ってみました
GDK を使わず直接ソースコードからインストールする方法も過去に紹介しています

以下の作業は Vagrant 上に構築した Ubuntu 上で実行しています
またユーザは vagrant ユーザで行います

環境

  • Ubuntu 16.04 LTS
  • Ruby 2.6.5 (rvm)
  • Go 1.14.2
  • Nodejs 12.16.2
    • yarn 1.22.4
  • Postgres 9.5.21
  • Gitlab Development Kit 0.2.5

Ruby のインストール

  • sudo apt -y install gnupg2
  • gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
  • \curl -sSL https://get.rvm.io | bash -s stable

再ログインする

  • rvm install ruby-2.6.5
  • rvm alias create default ruby-2.6.5

Golang のインストール

  • mkdir /tmp/go && cd /tmp/go
  • curl --remote-name --progress https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz
  • echo '6272d6e940ecb71ea5636ddb5fab3933e087c1356173c61f4a803895e947ebb3 go1.14.2.linux-amd64.tar.gz' | shasum -a256 -c - && sudo tar -C /usr/local -xzf go1.14.2.linux-amd64.tar.gz
  • sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/

Nodejs のインストール

  • sudo su -
  • curl --location https://deb.nodesource.com/setup_12.x | bash -
  • apt -y install nodejs
  • curl --silent --show-error https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
  • echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
  • apt -y update
  • apt -y install yarn

Postgresql のインストール

  • sudo apt -y install postgresql postgresql-client libpq-dev postgresql-contrib

Redis のインストール

  • sudo apt -y install redis-server

GraphicsMagick のインストール

  • sudo apt -y install graphicsmagick

Exiftool のインストール

  • sudo apt -y install exiftool

Runit のインストール

  • sudo apt -y install runit

MinIO のインストール

  • mkdir /tmp/minio && cd /tmp/minio
  • wget https://dl.min.io/server/minio/release/linux-amd64/minio
  • chmod +x minio
  • sudo mv minio /usr/local/bin

gdk のインストール

  • gem install gitlab-development-kit

その他 native extension のインストールに必要なパッケージのインストール

  • sudo apt -y install libicu-dev cmake libkrb5-dev libre2-dev

gdk で gitlab をインストール

  • cd
  • gdk init
  • cd gitlab-development-kit
  • gdk install shallow_clone=true

gitlab 本体のリポジトリの clone が始まります
リポジトリがかなり大きいので shallow clone にします
内部的には Makefile に記載の内容を実行している感じです
ruby, node, go で各アプリケーションのビルドとインストールを行います
また開発に必要なサンプルデータの投入も Postgres に行ってくれます
「Setup finished!」が表示され Gitlab の AA が表示されれば完了です

動作確認

各種プロセスの状態を確認します

  • gdk status
down: ./services/gitlab-pages: 789s; run: log: (pid 8866) 789s
down: ./services/gitlab-workhorse: 789s; run: log: (pid 8868) 789s
down: ./services/jaeger: 789s; run: log: (pid 8864) 789s
run: ./services/postgresql: (pid 8878) 789s, normally down; run: log: (pid 8871) 789s
run: ./services/praefect: (pid 8877) 789s, normally down; run: log: (pid 8863) 789s
run: ./services/praefect-gitaly-0: (pid 8876) 789s, normally down; run: log: (pid 8865) 789s
down: ./services/rails-actioncable: 789s; run: log: (pid 8870) 789s
down: ./services/rails-background-jobs: 789s; run: log: (pid 8873) 789s
down: ./services/rails-web: 789s; run: log: (pid 8867) 789s
run: ./services/redis: (pid 9437) 678s, normally down; run: log: (pid 8869) 789s
down: ./services/webpack: 789s; run: log: (pid 8872) 789s

初回設定で必要だったプロセスのみ起動しているようです
では各種プロセスを起動して Gitlab にアクセスできるか確認します

  • gdk start
run: ./services/gitlab-pages: (pid 3501) 223s, normally down; run: log: (pid 3485) 227s
run: ./services/gitlab-workhorse: (pid 3499) 223s, normally down; run: log: (pid 3488) 227s
run: ./services/jaeger: (pid 3500) 223s, normally down; run: log: (pid 3486) 227s
run: ./services/postgresql: (pid 3503) 223s, normally down; run: log: (pid 3487) 227s
run: ./services/praefect: (pid 3502) 223s, normally down; run: log: (pid 3478) 227s
run: ./services/praefect-gitaly-0: (pid 3504) 223s, normally down; run: log: (pid 3481) 227s
run: ./services/rails-actioncable: (pid 3509) 223s, normally down; run: log: (pid 3483) 227s
run: ./services/rails-background-jobs: (pid 3505) 223s, normally down; run: log: (pid 3480) 227s
run: ./services/rails-web: (pid 3506) 223s, normally down; run: log: (pid 3479) 227s
run: ./services/redis: (pid 3507) 223s, normally down; run: log: (pid 3484) 227s
run: ./services/webpack: (pid 3508) 223s, normally down; run: log: (pid 3482) 227s

すべてのプロセスが run になっていれば OK です
これで localhost:3000 で起動しています
もし localhost 以外からアクセスする場合は gdk.yml の設定を変更しましょう

  • vim gdk.yml
hostname: 192.168.100.12`

これで reconfigure すれば OK です

  • gdk reconfigure

これで http://192.168.100.12:3000 などの IP にアクセスすれば OK です
ログインは root/5iveL!fe でできます
502 になる場合はしばらくしてからアクセスしてください

最後に

GDK を使って gitlab をソースコードからインストールして各種コンポーネントが開発できる環境を作ってみました
バージョンなどの指定があるのでそこは注意しましょう
また root ユーザで作業しないのもポイントで psql の操作をするときに root ユーザだとエラーになるので注意しましょう

公式のドキュメントだと手順が足りないのでトライ&エラーで何度も試しながらやりました

GDK を使わず直接ソースコードからインストールする方法に比べて必要なデータが揃っているので開発はしやすいかもしれません
ただ 1 つの VM 内でたくさんのプロセスが動作するので快適に開発するのであれば 4vCPU/8GB くらいのスペックの VM が必要になりそうでした

参考サイト

0 件のコメント:

コメントを投稿