ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 저장소 업데이트로 인한 gitlab 도커 이미지 설치
    개발자 이야기 2024. 12. 26. 16:58

    개발서버에 docker를 설치하기로 했다.

    가이드 대로 저장소를 업데이트하고 yum을 이용해 도커를 설치했다. 도커가 잘 설치된 것도 확인했다.

    여기까지 했을 뿐인데, 같은 서버에 있는 gitlab이 동작하지 않았다.

    로그를 확인해 보니 gitlab의 버전이 올라가면서 더 이상 unicon을 지원하지 않는다는 오류였다. 친절하게도 puma를 이용하라고 가이드를 해줘서 퓨마로 변경했더니 이번엔 다른 오류가 떴다.

    저장소가 업데이트되면서 gitlab도 업데이트가 되고 내부적으로 무언가 마이그레이션 작업이 진행되는 것 같은데, 그 마이그레이션 오류가 나면서 gitlab이 동작하지 않게 된 것이다. 여러모로 복구를 해보려고 했는데, 잘 안 됐다. 저장소 용량은 40G, 회사 git서버이기 때문에 동작하지 않게 되면 여러 문제가 발생한다. 그것도 하필 크리스마스 전날 퇴근하기 전에 말이다.

    여러 가지를 시도했지만 결국 되지 않았고, 혼자 남은 사무실을 뒤로한 채 나도 퇴근해야 했다.

    크리스마스는 쉬어야 하는 날인데, 쉼이 잘 잡히지 않았다. 내일 아침이면 사람들이 물어볼 것이다.

    'git 안 되는데요?'

     

    다음날 gitlab의 이전 버전을 확인하고 저장소의 위치를 백업해 놓고 특정 버전으로 다시 설치했다.

    다행히도 설치는 잘 되었다. 설정파일도 그래도 유지가 되어 기존과 동일했다.

    yum install gitlab-ce-13.8.3

    (위처럼 설치해도 원래 있던 /etc/gitlab/gitlab.rb 파일은 안 건드리는 걸까?)

     

    yum 저장소를 업데이트하는 것만으로 기존 프로그램에 영향이 갈 수 있다는 것을 경험으로 깨달았으니, 이번엔 설치된 docker를 이용해 gitlab의 최신 버전을 설치하기로 했다.

    docker pull gitlab/gitlab-ce

    이미 gitlab이 구동되고 있기 때문에 기존과 다른 포트를 이용해서 container를 만들었다.

    docker run 
    --detach 
    --hostname ******
    --publish ****:80   
    --name gitlab   
    --restart always 
    --volume /home/git-data:/var/opt/gitlab/git-data 
    --volume /home/git-log:/var/log/gitlab gitlab/gitlab-ce

    로그와 저장소는 계속 용량이 늘어남으로 여유 공간이 있는 곳에 마운트를 시켰다.

    이제 새로운 버전의 gitlab을 사용할 것이다.

    이제 문제는 기존에 있던 저장소와 더불어 데이터를 모두 이관시켜야 한다.

    gitlab-rake gitlab:backup:create

    (사실 gitlab이 엉망이 되었을 때 혹시나 해서 저장소를 백업할 수 있을까 했는데, 실제로 위 명령어가 있었다. 하지만 엉망인 상태로는 백업이 되지 않았다. 재설치를 통해 복구가 된 상태에서 백업을 할 수 있었다.)

     

    백업 기본값으로 /var/opt/gitlab/backups 에 저장된다.

    경로는 /etc/gitlab/gitlab.rb 에서 값을 변경할 수 있다.

    # gitlab_rails['manage_backup_path'] = true
    # gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
    gitlab_rails['manage_backup_path'] = true
    gitlab_rails['backup_path'] = "/home/backups"

     

    (컨테이너가 구동 중인 상태에서 값을 변경하면 컨테이너를 재기동해야 하는 듯하다.)

     

    복구는 현재 도커를 이용해 신규 gitlab이 구동 중이기 때문에 아래와 같이 한다.

    docker exec -it gitlab gitlab-backup restore

    (컨테이너가 구동 중이어야 한다.)

    복원 시 읽어 들이는 경로는 백업 경로와 같다.

     

    결과는?

    실패다.

    처음엔 백업파일의 퍼미션 문제였고, 그다음엔 버전차이였다.

    버전이 일치하지 않기 때문에 그런 것인지, 아니면 버전 차이 많기 때문인지는 모르겠으나, 결국 실패하였다.

     

    이제 사람들에게 각자 알아서 옮겨라 해야 할 텐데.

    마음이 아프군.

     

    그냥 기존 버전의 gitlab을 사용하기 에는 불편한 점이 많다.

    우선 검색이 잘 안 된다. 검색하려는 단어가 무조건 일치해야 검색이 된다. like검색이 안된다.

    모든지 그렇다. 사람을 검색하려 해도 정확히 일치해야 검색이 된다. 성과 이름을 모르면 검색할 수 없다. 프로젝트 이름도 마찬가지.

    또 버전이 낮기 때문에 gitlab ci 등을 할 수 없었다. 괜히 잘못 건드렸다가는 이번과 마찬가지로 git이 망가지면 안 되기 때문에.

    버전이 업그레이드 되었느니, 이제 몇 가지 테스트를 할 수 있게 되었다.

    테스트가 끝난 후 사람들에게 공개해야겠다.

     

    반응형

    '개발자 이야기' 카테고리의 다른 글

    2024년 회사 종무식  (0) 2025.01.04
    SECON 2024 세계 보안 엑스포  (0) 2024.03.23
    외로움  (0) 2023.01.04
    술자리  (0) 2022.08.18
    밤중에 오류를 맞이하며  (0) 2022.07.25

    댓글

Designed by Tistory.