콘텐츠
시놀로지(Synology) NAS Git Server 패키지
기업 시놀로지(Synology)가 판매하는 NAS 제품 군은 전용 시놀로지 OS 가 설치되어 있습니다. 그리고 이 OS 용으로 개발 된 여러 패키지가 존재하는데 그 중에 Git Server 에 대해 알아보겠습니다.
Git Server 패키지
Git Server 는 시놀로지 패키지 센터에서 검색하면 바로 설치할 수 있습니다.
소개 글은 주로 깃(Git) 에 대한 소개가 적혀 있으며 설치 시 자신의 시놀로지 NAS 를 Git Server 로 운영할 수 있게 됩니다. 서버로 이용한다는 것은 깃에서 원격 저장소(remote respository) 의 역할을 해준다는 이야기 입니다.
그럼 여러 사용자(혹은 개인 이여도 여러 PC) 에서 이 저장소를 통해 서로 소스 코드를 함께 관리하게 됩니다.
원격 저장소(remote respository) 와 로컬 저장소(local respository)
깃(Git)은 원격 저장소와 로컬 저장소로 공간을 크게 나눌 수 있습니다.
먼저 로컬 저장소는 각 클라이언트(개발자의 개인 PC)에 설치 된 저장 공간이고 각 PC 에서 파일을 관리할 수 있습니다.
단, 이 로컬 저장소는 개인을 위한 것이므로 팀원들과 협업을 위해 최종적으로 서버에 위치한 원격 저장소에 반영하는 순서로 작업이 진행 됩니다.
그리고 로컬 저장소에 수정 사항을 반영하는 것을 Commit, 원격 저장소에 수정 사항을 반영하는 것을 Push 라 합니다.
Git Server 설치
이 Git Server 를 설치하고 사용해 보겠습니다.
먼저 설치 버튼을 눌러 다운로드가 완료 되니 다음과 같은 메시지가 출력 되었습니다.
메시지 텍스트로 읽기
패키지 서비스 실행 실패.
이 패키지를 사용하려면 SSH 서비스를 활성화해야 합니다. “터미널” 페이지로 이동하려면 “OK”를 클릭하십시오.
OK 가 없는데 😂…? 당황하지 않고 확인을 누르니 제어판 터미널로 이동하게 됩니다.
SSH 서비스 활성화
터미널에 가면 Telnet, SSH 서비스 활성화란 옵션이 보이게 되는데 이는 깃에 개발 된 코드를 주고 받은 과정에서 사용할 서비스 포트를 활성화 하는 작업 입니다.
이 작업을 하게 되면 이후 Windows PC 라면 PuTTY 등의 터미널 프로그램을 통해 시놀로지 NAS 로 SSH 를 이용해 접속할 수 있게 됩니다.
메시지에 맞춰 SSH 를 활성화 적용 후 다시 Git Server 를 실행해 보니 열기 버튼으로 바뀌었습니다. 열기를 눌러 보면 Git Server에 접근을 허용할 계정 목록이 나옵니다.
저는 대부분 admin 계정이므로 Git Server 를 이용하기 위한 서비스 용 계정을 새로 생성 했습니다.
이렇게 접근할 수 있는 계정만 설정해 주면 Git Server 는 설치 되었습니다.
PuTTY 를 통한 시놀로지 SSH 접속
PuTTY 는 Telnet, SSH 를 사용해서 원격 시스템에 접속하기 위한 무료 프로그램 입니다. 시놀로지 OS인 DSM(DiskStation Manager)는 리눅스 기반의 시스템 입니다. 그래서 위의 Git 설치 과정에서 SSH 서비스를 활성화 하였으므로 PuTTY 로 접근할 수 있습니다.
PuTTY 다운로드
PuTTY 는 다음 공식 링크에서 다운로드 할 수 있습니다. 저는 제가 사용하는 환경인 64-bit x86 으로 다운로드 하였고 Arm 버전도 제공되고 있습니다.
Download PuTTY: latest release (0.80)
PuTTY 설치
설치는 어렵지 않고 기본 설정으로 계속 Next 를 눌러 주면 됩니다.
PuTTY 로 시놀로지 접속
설치한 PuTTY 를 실행하면 다음과 같은 화면이 나옵니다. 자신의 NAS IP or 도메인 주소와 아까 SSH 설정 시 지정한 Port 를 입력한 후 Open 을 누르면 접속이 됩니다. 만약 이후에도 자주 접속하고 싶다면 Save 를 해두시면 됩니다.
정상적으로 접근하게 되면 첫 접근 시 PuTTY Security Alert 가 출력되면 Accept 를 누릅니다. 정상적으로 접근이 되었다면 로그인이 출력 됩니다. 시놀로지 계정으로 로그인 해봅시다.
참고로 SSH 접속 가능 계정은 시놀로지 계정의 권한 중 사용자 그룹이 administrators 인 계정 만을 허용하고 있습니다.
Git Server 원격 저장소 설정
PuTTY 등의 터미널 로 Git Server 에 접속 했다면 원격 저장소를 설정 해보겠습니다. 먼저 cd 명령어를 이용해 원격 저장소로 사용할 디렉토리로 이동 했습니다.
원격 저장소 디렉토리 생성
저는 새로 만든 계정의 home 폴더에 생성할 계획 입니다. 다음 명령어로 폴더를 생성해 봅시다.
mkdir /volume1/homes/사용자명/프로젝트명.git
Bash생성이 완료 되었으면 cd 명령어로 이동합니다.
cd /volume1/homes/사용자명/프로젝트명.git
BashGit 저장소 초기화
이동이 완료 되었으면 다음 명령어로 원격 저장소를 생성해 봅시다. –bare 옵션은 워킹 디렉토리(Working Directory) 없이 생성하는 명령어 입니다.
이는 사용자가 작업하는 프로젝트, 파일이 저장되는 로컬 디렉토리며 원격 저장소에선 없어도 무방합니다.
git init --bare
Bash해당 명령어를 입력하면 다음과 같은 힌트가 출력 됩니다. ls 명령어를 통해 branches, config 등의 여러 디렉토리가 생성 되었는지 확인해 봅니다.
힌트 보기
hint: Using ‘master’ as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config –global init.defaultBranch <name> hint: hint: Names commonly chosen instead of ‘master’ are ‘main’, ‘trunk’ and hint: ‘development’. The just-created branch can be renamed via this command: hint: hint: git branch -m <name>
VSCode 에서 Git Server 에 접근해 보기
이제 생성된 원격 저장소에 한번 접근해 보려 합니다.
먼저 저는 이전 포스팅(Visual Studio Code(VSCode)에 깃(Git) 환경 구성, 연동하기)을 통해 로컬 저장소에 프로젝트를 이미 지정 했습니다. 그래서 remote 를 이용해 Git 저장소와 연결만 해줘 보겠습니다.
이 명령어를 VSCode 내 터미널에 입력해 보았습니다.
아래 명령어 에서 ‘origin’ 은 기본적으로 사용 되는 원격 저장소의 별칭입니다. 다른 이름으로 하셔도 되지만 저는 origin 으로 했습니다.
원격 저장소에 연결
git remote add origin ssh://사용자명@NAS의IP주소/경로/저장소명.git
Bash정상적으로 연결 되었는지 한번 다음 명령어로 확인해 봅니다
연결 확인
git remote -v
Bash잘 출력 되었다면 이번엔 fetch 명령어로 저장소와 정상적으로 연결 되는지 확인해 보겠습니다. origin 부분엔 자신이 입력 했던 별칭으로 변경 하여 입력해 봅니다.
git fetch origin
Bash그리고 처음 연결을 시도하게 되면 아래와 같은 메시지가 출력 될 수 있습니다. 이 메시지는 호스트의 신뢰성을 확인하는 메시지로 호스트의 공개 키가 로컬 컴퓨터에 없을 때 발생한다고 합니다. 그래서 yes 를 선택하면 추가 되고 다시 메시지가 발생하지 않습니다.
Yes 를 입력하고 나니 password 를 입력하게 됩니다. 입력 후 별도의 오류 메시지가 없다면 정상적으로 연결 된 것입니다.
원격 저장소로 프로젝트 push 하기
저는 VSCode 로 이미 로컬 저장소에 소스코드를 commit 한 상태니까 한번 push 해보겠습니다. 명령어는 간단합니다.
아래 명령어를 입력하면 다시 password 입력 메시지가 출력 됩니다. 패스워드가 정상적으로 입력 되면 여러 메시지가 출력 되며 push 가 진행 됩니다.
여기서 main 은 최근 Git 의 기본 브랜치 명 입니다. (과거엔 master 를 사용 했습니다.) 일단 제가 별도로 기본 브랜치 명을 설정한 적은 없고 master 는 오류가 발생 하였으며 main 으로 진행 되었습니다.
git push origin main
Bashpush 후엔 다음 명령어를 입력해 브랜치 목록이 출력 됩니다. 저와 같은 과정을 겪었다면 origin/main 이란 브랜치만 출력 될 겁니다.
git branch -r
Bash신규 환경에 원격 저장소 프로젝트 가져오기
이제 정상적으로 원격 저장소에 push 되었는지 확인하기 위해 아무 폴더를 만들고 VSCode 로 열어 주었습니다.
그 다음 Visual Studio Code(VSCode)에 깃(Git) 환경 구성, 연동하기를 참고하여 로컬 저장소를 다시 활성화 합니다.
활성화 한 후 프로젝트를 로컬 시스템에 가져오는 명령어인 git clone 명령어를 사용 했습니다.
명령어를 입력하면 password 입력이 나오고 Cloning into ‘프로젝트 명’… 메시지와 함께 진행 되며 좌측 탐색기에 프로젝트 명 폴더가 생겨 납니다.
git clone ssh://사용자명@NAS의IP주소/경로/저장소명.git
Bash그 후 pull 명령어를 입력하면 최신 버전의 소스 코드가 전부 로컬에 다운 받아 졌습니다.
git pull origin main
Bash