我重新安装了GitLab并忘了备份gitlab-secrets.json文件。
现在我无法启用2FA(已禁用),并且我在production.log文件中看到此错误:
Completed 500 Internal Server Error in 15ms (ActiveRecord: 1.3ms)
OpenSSL::Cipher::CipherError (bad decrypt):
app/controllers/profiles/two_factor_auths_controller.rb:5:in `show'
lib/gitlab/i18n.rb:47:in `with_locale'
lib/gitlab/i18n.rb:53:in `with_user_locale'
app/controllers/application_controller.rb:337:in `set_locale'
lib/gitlab/middleware/multipart.rb:93:in `call'
lib/gitlab/request_profiler/middleware.rb:14:in `call'
lib/gitlab/middleware/go.rb:17:in `call'
lib/gitlab/etag_caching/middleware.rb:11:in `call'
lib/gitlab/middleware/read_only.rb:30:in `call'
lib/gitlab/request_context.rb:18:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:27:in `call'
我有什么办法可以修复它而不会丢失任何数据吗?
GitLab CE版。 10.1.0
答案 0 :(得分:0)
很抱歉,如果找不到备份,你就不走运了。
如果您需要还原GitLab应用程序备份,则还需要还原
gitlab-secrets.json
。如果不这样做,使用双因素身份验证的GitLab用户将无法访问您的GitLab服务器,并且GitLab CI中存储的“安全变量”将丢失。
答案 1 :(得分:0)
如果您使用omnibus安装gitlab,也许我的方式可以提供帮助。 出于某种原因,我不得不重新安装gitlab,并且在我完成它之后遇到了几乎相同的500个解密错误。我当时根本不知道备份那个秘密文件。 我假设您可以访问您的gitlab网站,可以看到项目列表,但不能直接打开它们,因为解密错误(可以通过添加/ tree / master打开它)。 以下是我的方法:
对我来说,我之前的gitlab版本是8.9.3,在我重新安装了没有备份gctlab-secrets.json的相同版本之后,我遇到了500个不良解密错误。然后我将其升级到8.17.7,这只是一个小版本升级。我注意到数据库迁移,之后更新了所有数据库加密信息。然后我可以在没有500的情况下打开我的所有项目。
Checking PostgreSQL executables: OK
Shutting down all GitLab services except those needed for migrations
ok: down: gitlab-workhorse: 0s, normally up
ok: down: logrotate: 0s, normally up
ok: down: postgresql: 1s, normally up
ok: down: sidekiq: 0s, normally up
ok: down: unicorn: 1s, normally up
ok: run: postgresql: (pid 14987) 0s
run: postgresql: (pid 14987) 0s; run: log: (pid 15964) 159018s
Reconfiguring GitLab to apply migrations
init (upstart 0.6.5)
* Moving existing certificates found in /opt/gitlab/embedded/ssl/certs
* Symlinking existing certificates found in /etc/gitlab/trusted-certs
gitlab Reconfigured!