728x90
반응형
상황
- gitlab root 초기 비밀번호를 잃어버렸다.
처리방법
inittal_root_password 파일로 확인
- docker로 설치시 /etc/gitlab 폴더를 volume으로 잡아줬다면 inittal_root_password 파일을 열어서 안에 password 가 뭔지 확인하거나,
- docker 볼륨을 안잡아줬다면 shell로 docker 에 접속해서 inittal_root_password 를 열어보면된다.
(docker ... /bin/bash로 gitlab 컨테이너에 들어가서 cat 명령으로 initial_root_password 파일을 출력해서 Password 에 적힌 문구로 패스워드를 확인한다.)
PS C:\Users\Administrator> docker exec -it gitlab /bin/bash
root# cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: 123456
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
GitLab rails console 로 패스워드 변경
- docker ps로 GitLab 컨테이너에 Name 확인.
- docker exec -it gitlab /bin/bash 로 GitLab 컨테이너에 접속
- gitlab-rails console -e production 명령으로 GitLab rails console에 접속.
C:\Users\Administrator>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1342142cef8 gitlab/gitlab-ce:latest "/assets/wrapper" About an hour ago Up About an hour (healthy) 0.0.0.0:9022->22/tcp, 0.0.0.0:9080->80/tcp, 0.0.0.0:9443->443/tcp gitlab
C:\Users\Administrator>docker exec -it gitlab /bin/bash
root@111:/# gitlab-rails console -e production
--------------------------------------------------------------------------------
Ruby: ruby 2.7.7p221 (2022-11-24 revision 168ec2b1e5) [x86_64-linux]
GitLab: 15.7.0 (b2a2fb69e66) FOSS
GitLab Shell: 14.14.0
PostgreSQL: 13.8
------------------------------------------------------------[ booted in 32.47s ]
Loading production environment (Rails 6.1.6.1)
irb(main):001:0>
- GitLab rails console에 접속했으면 User.find_by_username('root') 명령으로 root계정 객체를 가져와서 u 에 담는다.
- u 객체가 어떻게 생겼는지 확인 하려면 pp u.attributes 명령을 쳐주면, u 객체를 출력해준다.
- u 객체의 패스워드를 아래 명령을 쳐서 변경 한다.
u.password = 변경할 패스워드
u.password_confirmation = 변경할 패스워드 확인 - 변경한 패스워드를 u.save! 명령으로 저장한다.
- 한번더 pp u.attributes 명령을 쳐서 확인해보면 변경하기전에 encrypted_password 와 변경 후에 encrypted_password가 달라진걸 확인할 수 있다.
irb(main):068:0> u = User.find_by_username('root');
=> #<User id:1 @root>
irb(main):070:0> pp u.attributes
{"id"=>1,
"email"=>"admin@example.com",
"encrypted_password"=>
"$2a$10$wHVnFcr.B914qlk0h8INN.vwzmw0YaUt15iD/oXODdmPYpihat/jK",
"reset_password_token"=>nil,
"reset_password_sent_at"=>nil,
"remember_created_at"=>nil,
"sign_in_count"=>0,
..
}
irb(main):072:0> u.password='123456';
=> "123456"
irb(main):075:0> u.password_confirmation = '123456';
=> "123456"
irb(main):076:0> u.save!
=> true
irb(main):077:0> pp u.attributes
{"projects_limit"=>100000,
"id"=>1,
"email"=>"admin@example.com",
"encrypted_password"=>
"$2a$10$KDwUfZnhWWeb47hY9CUPR.8HnoO6gLPU0.ss/zxlr.VhSNIIBlvsi",
"reset_password_token"=>nil,
"reset_password_sent_at"=>nil,
"remember_created_at"=>nil,
"sign_in_count"=>0,
...
}
irb(main):078:0>
확인
- root / 변경한 비밀번호로 접속해 보자
- 잘된다.
728x90
반응형