gitlab restoreでPermission denied の解消
バックアップデータのリストアを行った場合に発生した不具合をまとめておく
バックアップデータのリストアコマンドを実行
wataru@gitlab:~$ sudo gitlab-backup restore BACKUP=1629366247_2021_08_19_14.1.3
しばらくすると、エラーが発生
Unpacking backup … tar: 1629366247_2021_08_19_14.1.3_gitlab_backup.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
unpacking backup failed
チェック
Cannot open: Permission denied なので、パーミッションがダメって事なので再チェック
wataru@gitlab:~$ sudo ls -al /mnt/backups/gitlab/
total 46112
drwx—— 3 git root 4096 Aug 19 09:45 .
drwxrwxrwx 5 root root 4096 Aug 16 05:58 ..
-rw——- 1 lxd gitlab-www 10649600 Dec 12 2020 1607761637_2020_12_12_13.5.4_gitlab_backup.tar
-rw——- 1 lxd gitlab-www 12154880 Jan 9 2021 1610199279_2021_01_09_13.5.4_gitlab_backup.tar
-rw——- 1 lxd gitlab-www 12154880 Jan 10 2021 1610302559_2021_01_10_13.5.4_gitlab_backup.tar
-rw——- 1 root root 12226560 Aug 19 09:45 1629366247_2021_08_19_14.1.3_gitlab_backup.tar
drwxrwxrwx 3 root root 4096 Aug 16 07:36 configs
はい、1629366247_2021_08_19_14.1.3_gitlab_backup.tarの所有者はroot/rootです。
これを、合わせます。lxd/gitlab-www
wataru@gitlab:~$ sudo chown lxd.gitlab-www /mnt/backups/gitlab/1629366247_2021_08_19_14.1.3_gitlab_backup.tar
wataru@gitlab:~$ sudo ls -al /mnt/backups/gitlab/
total 46112
drwx—— 3 git root 4096 Aug 19 09:45 .
drwxrwxrwx 5 root root 4096 Aug 16 05:58 ..
-rw——- 1 lxd gitlab-www 10649600 Dec 12 2020 1607761637_2020_12_12_13.5.4_gitlab_backup.tar
-rw——- 1 lxd gitlab-www 12154880 Jan 9 2021 1610199279_2021_01_09_13.5.4_gitlab_backup.tar
-rw——- 1 lxd gitlab-www 12154880 Jan 10 2021 1610302559_2021_01_10_13.5.4_gitlab_backup.tar
-rw——- 1 lxd gitlab-www 12226560 Aug 19 09:45 1629366247_2021_08_19_14.1.3_gitlab_backup.tar
drwxrwxrwx 3 root root 4096 Aug 16 07:36 configs
再度、リストアを実行
wataru@gitlab:~$ sudo gitlab-backup create
Unpacking backup … tar: 1629366247_2021_08_19_14.1.3_gitlab_backup.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
unpacking backup failed
権限エラー…
動作しているユーザ情報を確認…
バックアップを作成してできあがるユーザに差し替える
wataru@gitlab:~$ sudo gitlab-backup create
wataru@gitlab:~$ sudo ls -al /mnt/backups/gitlab/
total 46412
drwx—— 3 git root 4096 Aug 19 12:03 .
drwxrwxrwx 5 root root 4096 Aug 16 05:58 ..
-rw——- 1 lxd gitlab-www 10649600 Dec 12 2020 1607761637_2020_12_12_13.5.4_gitlab_backup.tar
-rw——- 1 lxd gitlab-www 12154880 Jan 9 2021 1610199279_2021_01_09_13.5.4_gitlab_backup.tar
-rw——- 1 lxd gitlab-www 12154880 Jan 10 2021 1610302559_2021_01_10_13.5.4_gitlab_backup.tar
-rw——- 1 lxd gitlab-www 12226560 Aug 19 09:45 1629366247_2021_08_19_14.1.3_gitlab_backup.tar
-rw——- 1 git git 307200 Aug 19 12:03 1629374641_2021_08_19_14.1.3_gitlab_backup.tar
drwxrwxrwx 3 root root 4096 Aug 16 07:36 configs
git.gitの様です。
早速変更…
wataru@gitlab:~$ sudo chown git.git /mnt/backups/gitlab/1629366247_2021_08_19_14.1.3_gitlab_backup.tar
wataru@gitlab:~$ sudo ls -al /mnt/backups/gitlab/
total 46412
drwx—— 3 git root 4096 Aug 19 12:03 .
drwxrwxrwx 5 root root 4096 Aug 16 05:58 ..
-rw——- 1 lxd gitlab-www 10649600 Dec 12 2020 1607761637_2020_12_12_13.5.4_gitlab_backup.tar
-rw——- 1 lxd gitlab-www 12154880 Jan 9 2021 1610199279_2021_01_09_13.5.4_gitlab_backup.tar
-rw——- 1 lxd gitlab-www 12154880 Jan 10 2021 1610302559_2021_01_10_13.5.4_gitlab_backup.tar
-rw——- 1 git git 12226560 Aug 19 09:45 1629366247_2021_08_19_14.1.3_gitlab_backup.tar
-rw——- 1 git git 307200 Aug 19 12:03 1629374641_2021_08_19_14.1.3_gitlab_backup.tar
drwxrwxrwx 3 root root 4096 Aug 16 07:36 configs
リストア
wataru@gitlab:~$ sudo gitlab-backup restore BACKUP=1629366247_2021_08_19_14.1.3
…
Restore task is done.
これでOKです
参考までに生成するバックアップデータのパーミッションの変更は…
/etc/gitlab/gitlab.rb
gitlab_rails[‘backup_archive_permissions’] = 0644 # Makes the backup archives world-readable
です。
なぜ、今回パーミッションがややこしくなったかというと、私の環境の/mnt/backups/gitlab/がNFSマウントしているからです。
gitlab_rails[‘backup_path’] = ‘/mnt/backups/gitlab/’
を指定してやればバックアップ保存先も変えられます。
メモ帳アプリが飛ぶ前にBlogに待避しています…