*

CentOS7にGitLab 9をインストールして日本語化

公開日: : 最終更新日:2017/04/17 投稿者:raru Git, サーバ, バージョン管理

最近CentOS7にGitLabを入れて、日本語化してみました。
最近9が出たようで、あまり参考になるサイトもなく、詰まるポイントもあったため手順を記録します。

結論としては、ポイントは以下の3つでした。
・npm install
・bundle exec rake assets:precompile RAILS_ENV=production
・bundle exec rake webpack:compile RAILS_ENV=production

また今回インストールしたのはGitLab9.0.5になります。

GitLab9のインストール

基本的に公式サイトの手順に従うだけで完了します。

// これによりruby, postgres, nginx全てまとめてインストール、セットアップされる。
# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
# yum install gitlab-ce

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

...
インストール:
  gitlab-ce.x86_64 0:9.0.5-ce.0.el7

完了しました!

これだけでいいの?  と思いますが、これだけでOKです。
ソースから入れたり、既存のnginxを利用したいなどあると思いますがその場合にはインストール後の設定で対応可能なようです。

GitLab初期設定

私もまだ構築中なので、設定そのものは参考程度に留めていただいた方が良いと思います。

// 手探りで初期設定。mail, https設定など不足。unicorn, redisは正直不明。デフォルトを利用するようにだけしてみたつもり
# cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.org
# vi /etc/gitlab/gitlab.rb
# diff /etc/gitlab/gitlab.rb.org /etc/gitlab/gitlab.rb
13c13
< external_url 'http://hogehoge'
---
> external_url 'http://hogehoge.com'
40a41
> gitlab_rails['time_zone'] = 'Asia/Tokyo'
518c519
< # unicorn['worker_timeout'] = 60
---
> unicorn['worker_timeout'] = 60
521c522
< # unicorn['worker_processes'] = 2
---
> unicorn['worker_processes'] = 2
524,529c525,530
< # unicorn['listen'] = '127.0.0.1'
< # unicorn['port'] = 8080
< # unicorn['socket'] = '/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket'
< # unicorn['pidfile'] = '/opt/gitlab/var/unicorn/unicorn.pid'
< # unicorn['tcp_nopush'] = true
< # unicorn['backlog_socket'] = 1024
---
> unicorn['listen'] = '127.0.0.1'
> unicorn['port'] = 8080
> unicorn['socket'] = '/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket'
> unicorn['pidfile'] = '/opt/gitlab/var/unicorn/unicorn.pid'
> unicorn['tcp_nopush'] = true
> unicorn['backlog_socket'] = 1024
578,581c579,582
< # postgresql['enable'] = true
< # postgresql['listen_address'] = nil
< # postgresql['port'] = 5432
< # postgresql['data_dir'] = "/var/opt/gitlab/postgresql/data"
---
> postgresql['enable'] = true
> postgresql['listen_address'] = nil
> postgresql['port'] = 5432
> postgresql['data_dir'] = "/var/opt/gitlab/postgresql/data"
655,656c656,657
< # redis['enable'] = true
< # redis['username'] = "gitlab-redis"
---
> redis['enable'] = true
> redis['username'] = "gitlab-redis"
660,661c661,662
< # redis['uid'] = nil
< # redis['gid'] = nil
---
> redis['uid'] = nil
> redis['gid'] = nil
722c723
< # nginx['enable'] = true
---
> nginx['enable'] = true
752c753
< # nginx['listen_addresses'] = ['*', '[::]']
---
> nginx['listen_addresses'] = ['*', '[::]']


// 設定を有効化
# gitlab-ctl reconfigure

// 状態の確認
# gitlab-ctl status
run: gitaly: (pid 12284) 26s; run: log: (pid 11807) 65s
run: gitlab-monitor: (pid 12336) 24s; run: log: (pid 12238) 38s
run: gitlab-workhorse: (pid 12296) 25s; run: log: (pid 11858) 63s
run: logrotate: (pid 12000) 55s; run: log: (pid 11999) 55s
run: nginx: (pid 11958) 57s; run: log: (pid 11957) 57s
run: node-exporter: (pid 12113) 47s; run: log: (pid 12112) 47s
run: postgres-exporter: (pid 12324) 24s; run: log: (pid 12195) 40s
run: postgresql: (pid 11522) 110s; run: log: (pid 11521) 110s
run: prometheus: (pid 12308) 25s; run: log: (pid 12070) 49s
run: redis: (pid 11410) 121s; run: log: (pid 11409) 121s
run: redis-exporter: (pid 12155) 41s; run: log: (pid 12154) 41s
run: sidekiq: (pid 11760) 71s; run: log: (pid 11759) 71s
run: unicorn: (pid 11705) 73s; run: log: (pid 11704) 73s

// ポートの開放。私はhomeで接続元許可とかしてるのでhomeに追加。
// 公開サーバであればzoneはpublicか未指定で。
# firewall-cmd --add-service=http --zone=home --permanent
success

GitLab日本語化

続いてGitLabの日本語化を行なっていきます。
ここからが問題になる場所で、日本語化途中にある assets:precompile が上手くいかないのです。
GitLab9自体が出たばかりで日本での報告はまだあまり見ませんが、海外ではいろいろとお話がされていました。

また日本語化パッチはまだ9.0.4までしか出ていないため、一部不具合が出るかもしれませんが現状特に問題なく日本語化できているっぽくもあります。

パッチの適用

まずはパッチの適用を行なっていきます。
nodeを7.7.4でインストールしているのは、海外のフォーラムで「私は7.7.4で動いたわ」っていうコメントを見かけたからになります。
おそらく最新で問題ないです。

// パッケージ準備
# yum remove nodejs
# yum install gcc-c++ git
# cd /usr/local/src/
# curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash
# source ~/.bashrc
# nvm install v7.7.4

// パッチファイルを取得
# wget https://raw.githubusercontent.com/ksoichiro/gitlab-i18n-patch/master/patches/v9.0.4/app_ja.patch

// patchコマンドをインストール
# yum install patch

// 日本語パッチの適用
# cd /opt/gitlab/embedded/service/gitlab-rails/
# patch -p1 < /usr/local/src/app_ja.patch

assets:precompile

問題のassetsのprecompileです。
どうやら最新のgitlabだとprecompile前に「/opt/gitlab/embedded/service/gitlab-rails/」のフォルダでnpm installしないといけないみたいです。
これを行わないとモジュールが不足しているためコンパイルできないという旨のエラーにハマります。

またさらに、ここで正常にコンパイルが成功してもGitLabは500エラーになっていました。
ログを見るとwebpackがどうこう言っていたので、そちらもコンパイルしてあげると、ちゃんと日本語化されて起動できます。

// 再コンパイルのために必要なnode_modulesを取得
// 一部エラーが出るが無視
# npm install

// 起動済みのため再コンパイル
# rm -rf public/assets
# export PATH=/opt/gitlab/embedded/bin:$PATH
# bundle exec rake assets:precompile RAILS_ENV=production

// precompileのみだと起動後にwebpackが云々でエラーになるのでこちらのコンパイルも行う
# bundle exec rake webpack:compile RAILS_ENV=production
# gitlab-ctl reconfigure
# gitlab-ctl restart

感想

今回は無駄に時間がかかってしまったことと、npm install時のリポジトリがないよ的なエラーは未解決です。
そちらもちょっと試してたのですが、サクッと解決できなかったため一旦置いています。実は問題ないんじゃないの、って思ってますがどうなんでしょうか。

自分が何か入れようとして最新を取得すると、だいたいつい最近メジャーバージョン上がったんだよねってなってて参考サイトがないこととが多々あります。
間が悪いですね。

関連記事

no image

Raspbianをwheezyからjessieにアップグレード

2015/04頃にdebianのバージョン8 jessieがリリースされたようです。 それに伴い、

記事を読む

no image

CentOS6にredmineを導入

CentOSにredmineを導入しました。 Gitとの連携を目論んでいたのですが、redmine

記事を読む

no image

OpenDKIMを利用したメール認証

今回はOpenDKIMを利用したメール認証設定を行います。 DKIMやらSPFやら、メールは何かと

記事を読む

no image

個人でのProxyサーバ利用用途

Proxyサーバを建てたいということで、利用用途を考えていました。 まずサイト高速化であったり冗長

記事を読む

no image

Gitサービスの比較/調査

現在世の中に無料であったり課金式の無料リポジトリ提供サービスがいくつかあります。 その中から簡単に

記事を読む

no image

CentOS7 初期設定

しばらく振りになりますが、ひっそりとWordpressの移設を行っていました。 お仕事が多忙を極め

記事を読む

no image

Raspbianでメール送信 ssmtp編

Raspbianで監視などをおこなっているとメールが送信したくなります。 とりあえず何かと管理用に

記事を読む

no image

RaspbianにRedmine3を導入

普段Zabbixを入れて運用しいてるRaspbianにRedmineも入れてみました。 ややスペッ

記事を読む

no image

CentOSで不要カーネルの削除

サーバを利用して時間が経過すると溜まってくるLinuxのkernelの削除方法の備忘録。 忘れるた

記事を読む

no image

ZabbixからsSMTPを利用してエラー通知メール送信

今回はsSMTPを利用してRaspbian上のZabbix Serverからアラートメールの送信を行

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑