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