Gitlabバックアップ時に注意が出る様になった話

いつからだろう…
Gitlabのバックアップを取るタイミングで注意が発生する
具体的には以下の表示

[2022-11-24T13:11:07+09:00] WARN: Please install an English UTF-8 locale for Cinc Client to use, falling back to C locale and disabling UTF-8 support.

動作環境

はじめに動作環境を確認します

wataru@gitlab:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.1 LTS
Release:	22.04
Codename:	jammy
root@gitlab:~# sudo gitlab-rake gitlab:env:info

System information
System:		Ubuntu 22.04
Proxy:		no
Current User:	git
Using RVM:	no
Ruby Version:	2.7.5p203
Gem Version:	3.1.6
Bundler Version:2.3.15
Rake Version:	13.0.6
Redis Version:	6.2.7
Sidekiq Version:6.5.7
Go Version:	unknown

GitLab information
Version:	15.6.0-ee
Revision:	07a0843ad18
Directory:	/opt/gitlab/embedded/service/gitlab-rails
DB Adapter:	PostgreSQL
DB Version:	12.12
URL:		http://192.168.1.201
HTTP Clone URL:	http://192.168.1.201/some-group/some-project.git
SSH Clone URL:	git@192.168.1.201:some-group/some-project.git
Elasticsearch:	no
Geo:		no
Using LDAP:	no
Using Omniauth:	yes
Omniauth Providers: 

GitLab Shell
Version:	14.13.0
Repository storage paths:
- default: 	/var/opt/gitlab/git-data/repositories
GitLab Shell path:		/opt/gitlab/embedded/service/gitlab-shell

gitlab-rake の実行に時間がかかりすぎてちょっとこまりました

はじめに現状を確認する

localeが変だということなので調べる…

wataru@gitlab:~$ locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=

… C.UTF-8って何?
… はっ!注意と同じこと言っているw

なので解消を考えます

ググってみた

ググるといろいろな情報がありました。今回はこちらを参考に作業を進めました

https://stackoverflow.com/questions/65736408/chef-locale-resource-does-not-apply-properties

現状確認

現状を確認してみました

wataru@gitlab:~$ cat /etc/locale.conf
cat: /etc/locale.conf: No such file or directory

wataru@gitlab:~$ localectl status
   System Locale: LANG=C.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105
wataru@gitlab:~$ echo $LANG
C.UTF-8
wataru@gitlab:~$ cat /etc/default/locale
LANG=C.UTF-8

はい、設定がC.UTF-8で定義されていますね。

今回はこれをen_US.utf8にしてやろうと思います

localeを変更する

記事の通りにコマンドを実行していきます

wataru@gitlab:~$ export LANG=en_US.utf8
wataru@gitlab:~$ echo $LANG
en_US.utf8
wataru@gitlab:~$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.utf8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=

LANGを変更してlocaleを確認するとエラーになりますねw
でも続行します

wataru@gitlab:~$ sudo update-locale LANG=en_US.utf8
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.utf8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
*** update-locale: Error: invalid locale settings:  LANG=en_US.utf8

なんと!LANGが変更されました!

はい、ERRORになりますねw

エラー 「update-locale: Error: invalid locale settings」を解決する

ググると記事が出ました

https://qiita.com/suzuki-navi/items/b5f066db181092543854

単純な解決方法が書いていますが結局の実行コマンドは以下

$sudo apt install locales-all

インストールが走りまして終了

localeを確認すると?

wataru@gitlab:~$ sudo update-locale LANG=en_US.utf8
wataru@gitlab:~$ locale
LANG=en_US.utf8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=

注意が出なくなりましたし確認すると問題なく入りました

これでバックアップコマンドを実行しても注意が出なくなりました!

wataru@gitlab:~$ sudo /usr/local/bin/gitlab_backup 
ok: down: puma: 0s, normally up
ok: down: sidekiq: 0s, normally up
ok: run: puma: (pid 753554) 1s
ok: run: sidekiq: (pid 753562) 1s