NAS

[Synology NAS] Gitlab 설치 및 사용법

sieunju 2021. 7. 29. 15:15
반응형

Synology NAS Docker 를 활용한 Gitlab 설치 및 사용법에 대해 설명해보도록 하겠습니다.
스펙 간단 설명
NAS Model: DS720+ (RAM 10GB)
DSM: 7.0
깃랩 최소 사양으로 램 2기가 이상 있어야 합니다.
설치 방법 및 설정하는 방법

Docker > 레지스트리 > gitlab 검색 > "gitlab/gitlab-ce"(official Image) 를 다운 받습니다.
설치가 안료되면 해당 이미지를 클릭하고 "실행" 버튼을 클릭합니다.
사용자에 알맞게 컨테이너 이름을 지정하고 "고급설정" 버튼을 클릭합니다. (저는 이미 깃랩을 만들었기 때문에 gitlab2라고 적었습니다 :) )
파일/폴더 탭에는 해당 "마운트 경로" 마다 저장하고 싶은 폴더 경로를 넣으시면 됩니다.

- "폴더추가" 버튼을 클릭해서 폴더 경로를 지정후 마운트 경로를 입력하시면 됩니다.

/var/opt/gitlab/backups (백업 경로)
/var/log/gitlab (로그 경로)
/var/opt/gitlab (저장소 및 데이터 경로)
/etc/gitlab (깃랩 설정 관련 경로)
TIP: 백업 경로를 제외한 나머지 폴더들의 권한은 Everyone으로 주셔야 합니다. (하위 폴더들에게도 권한 부여)
안 그러면 깃랩 실행 시 폴더 권한이 없다고 나오기 때문에 모든 사용자가 읽/쓰 권한을 가질 수 있도록 부여해야 합니다.

로컬 포트에 사용자가 할당한 포트들을 입력합니다.
"완료" 클릭하고 실행합니다.

한 5~10분 정도 기다립니다....

램이 저렇게 올라간거 보니 설치는 끝난거 같습니다.

아까 마운트 중 /etc/gitlab 을 지정한 위치에 "gitlab.rb" 가 있습니다. 해당 파일을 텍스트 편집기로 엽니다.

(권한을 Everyone으로 하셨다면 파일을 열기와 수정 후 저장까지 가능합니다. 안된다면 권한 재 수정해야 합니다.)

각 행으로 이동을 클릭하셔서 각 줄위치에 있는 주석을 풀고 위와 같이 세팅합니다.

우선 위 캡처 화면과 같이 깃랩을 들어올 때 무조건 https 로 진입하게끔 설정했습니다. 
(추후 NAS SSL 적용 및 역방향 프록시 하는 방법에 대해 올릴 예정입니다.)
external_url: 본인 NAS 로 진입할 SSL 깃랩 주소 (ex.)https://${userName}.synology.me:${SSL PORT}
이외에는 SSL 암호화 적용 및 리디렉션 처리 설정하는 거라 똑같이 적으시면 됩니다.

이후 컨테이너 실행!! 만약에 갑자기 꺼지면 다시 실행해주시면 됩니다. (설정이 바뀌어서 꺼지는 경우가 있습니다.)

 

 

컨테이너 실행후 5~10분뒤 아가 설정한 $external_url 로 진입하면 위 화면으로 이동합니다.

이후 Root 초기 비번을 알아야 합니다. 초기 비번 위치는

깃랩 설정 경로(/etc/gitlab) > initial_root_password 파일이 있습니다. 해당 파일 열어서 패스워드 복사 후 

위와 같이 입력하시면 아래와 같이 진입 성공합니다.

이제 자유롭게 깃랩을 사용하시면 되겠습니다. :D

추가적으로 깃랩 백업하는 방법은 SSH 로 접속 후에 sudo -i 입력해서 root 접근 후 아래와 같이 입력하시면 되겠습니다.

초기에 깃랩 백업했던 저장소로 파일이 추가가 된 것을 확인하실 수 있습니다.

docker exec -it ${내가 지정한 깃랩 컨테이너 이름}
gitlab-rake gitlab:backup:create

 

역방향 프록시 및 HTTPS 처리 하는 방법

위 글을 읽다보면 'external_url' 에 대한 처리까지 했는데 뭔가 잘 안되는 이슈 사항이 있습니다. 

그리고 제 글같은 경우에는 당연히 HTTPS 처리를 한 상태이기 때문에 external_url 은 HTTPS 상태여야합니다.  다음으로 나스에서 인증서를 발급받아서 역방향 프록시하는 방법에 대해서 안내해드리겠습니다. 

나스 접속후 '제어판' > '보안' 선택합니다.
'인증서' > '추가' 선택
'새 인증서 추가' 선택
'Let's Encrypt' 라는 무료 인증서 (유효기간 90일) 짜리를 선택하시고 '다음' 선택

 

여기서 도메인 이름 설정이 중요합니다.

여기서 도메인 이름을 설정하는데 중요한 부분이 몇가지 있습니다. 본인이 원하는 이름을 앞에 두시고 그 뒤에 무조건 본인 나스 접속하는 url 를 입력해야 합니다. 예를 들어 나스 접속하는 도메인이 'https://sieun.synology.me' 라면 
앞에 두고 설정하고 싶은 이름은 'gitlab' 이라 쳤을때 '도메인 이름' 에 입력할 도메인은

gitlab.sieun.synology.me 가 되겠습니다. 이후에 이메일은 본인 이메일 입력하시고 '주제 대체 이름' 은 기입안하셔도 됩니다 :)
'완료' 버튼을 선택하고 조금 기다리시면 인증서가 만들어집니다.

인증서 완료!

이후에 다시 제어판에 들어가셔서 '시스템' > '로그인 포털' 선택합니다.

 

오랜만에 이 메뉴 들어가보니...꽤 많이 해놨네요 하하핫...

여기서 생성 버튼 선택합니다.

소스라는 부분은 '외부' 에서 내 깃랩으로 접속할 도메인 입니다. HTTPS 니까 기본적으로 포트는 '443' 으로 설정해줘야 합니다. 

대상이라는 부분은 '내부' 즉, 내 나스에서 넘길 IP와 포트번호입니다. 위 내용중에 Docker 컨테이너에 설정한 포트번호중
컨테이너 포트 중 '443' 으로 설정한 로컬 포트를 입력합니다. 저같은 경우에는 '50015' 로 설정해서 50015로 입력했습니다.
그리고 호스트 이름은 본인 나스 IP 주소를 입력하면 됩니다.

위 내용들을 기입 했으면 '저장' 버튼을 선택합니다. 

다시 gitlab.rb 로 넘어가서 external_url 에 본인이 설정한 '호스트 이름' 을 입력합니다. 
예시 > external_url 'https://gitlab.sieun.synology.me/'

이제 크롬창을 킵니다. https://gitlab.sieun.synology.me  입력하고 엔터를 누르면 본인 나스에서 만든 깃랩에 접속이 됩니다 

이상 마치도록 하겠습니다.

긴 글 읽어주셔서 감사합니다.

반응형