gitlab総合インストール時にバックアップを作成すると権限エラーが発生する

gitlab総合インストール時にバックアップを作成すると権限エラーが発生する

私はgitlabバージョン7.10.4を使用しており、インストールをアップグレードしたいと思います。しかし、バックアップを作成しようとすると、このメッセージが表示されます。

gitlab-rake gitlab:backup:create

Errno::EPERM: Operation not permitted @ chmod_internal - db
Errno::EPERM: Operation not permitted @ chmod_internal - db
/opt/gitlab/embedded/lib/ruby/2.1.0/fileutils.rb:1354:in `chmod'
/opt/gitlab/embedded/lib/ruby/2.1.0/fileutils.rb:1354:in `chmod'
/opt/gitlab/embedded/lib/ruby/2.1.0/fileutils.rb:997:in `block in chmod'
/opt/gitlab/embedded/lib/ruby/2.1.0/fileutils.rb:996:in `each'
/opt/gitlab/embedded/lib/ruby/2.1.0/fileutils.rb:996:in `chmod'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:19:in `block in pack'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:13:in `chdir'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:13:in `pack'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:16:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in `call'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in `block in execute'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `each'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `execute'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/opt/gitlab/embedded/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/bin/rake:23:in `load'
/opt/gitlab/embedded/service/gem/ruby/2.1.0/bin/rake:23:in `<main>'
Tasks: TOP => gitlab:backup:create

この問題を解決するのに役立ちます。

ベストアンサー1

まず、gitlabドキュメントでは、コマンドを実行するにはsudoを使用する必要があると思うようです。

https://github.com/gitlabhq/gitlabhq/blob/7-10-stable/doc/raketasks/backup_restore.md

コードに基づいて:

https://github.com/gitlabhq/gitlabhq/blob/7-10-stable/lib/backup/manager.rb

構成されたバックアップディレクトリ(Gitlab.config.backup.path)の3つのディレクトリ(ストレージ、データベース、アップロード)でchmod 700を実行しているようです(データベースでは失敗します)。ドキュメントによると、Gitlab.config.backup.path変数はconfig / gitlab.ymlから抽出されます。構成ファイルが見つからない場合は、一時的に /opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:19 に行を追加してバックアップ ディレクトリを印刷できます。

puts("Backup dir is: #{Gitlab.config.backup.path}")

strace コマンドを使用して同じ情報を取得することもできます。

$ strace -f gitlab-rake gitlab:backup:create 2>&1 | grep "^chdir\|^fchdir"

バックアップディレクトリを見つけたら、そのディレクトリのdbディレクトリを確認します。標準のLinux権限のトラブルシューティングを適用する必要があります。どのユーザーでコマンドを実行していますが、ディレクトリにどのような権限セットがありますか?必要に応じてSudo chmod/chown。

おすすめ記事