사람들은 많은 고민에 빠졌습니다.
과연 MS가 github에 크게 손을 대지 않지 않을까 하는 우려? 섞인 반응이었습니다.
개인적으로 작은 몇 개의 프로젝트를 (물론 아무도 거들떠 보지 않습니다.)하고 있는 사람으로서 살짝 신경이 쓰인 건 사실입니다.
그래서 대안을 찾던 중..gitlab이 있는 것을 발견했습니다.
하지만 대부분의 경우 그러하듯이.. 클라우드나 외부영역에 소스가 존재하는 것을 원하지 않으시는 분들도 있습니다. (개인 프로젝트라면 상관없지만, 고객사 프로젝트등의 경우)
개인 프로젝트 같은 경우 부담없이 계정을 만들고 작업을 해도 무방하다고 판단했습니다.
http://gitlab.com/
개인 프로젝트라면, 이 이외에도 대안은 많습니다. (bitbucket등등..)
외부 인터넷이 원할하시고, 망보안/소스보안에 문제가 되지 않는다면, 위의 사이트를 직접 사용하시는 것이 가장 단순하고 쉬울 것 같습니다.
만약 그렇지 않다하더라도, 설치형 패키지를 제공합니다.
단! Gitlab Community Edition을 설치해 보시기를 권장합니다.
개인적인 결정으로 저는 개발머신에 docker로 gitlab을 설치하기로 마음 먹었습니다.
gitlab은 일반적인 형상관리 이외에도 CI/CD를 결합해 줌으로서 DevOps이라고 보시는 것이 더 좋습니다.
아래의 모든 행위는 ubuntu 18.04 (LTS)에서 수행하였음을 알려드립니다. 인터넷도 원할히 연결되어 있는 상태입니다. (아니라면. 인터넷이 되는 곳에서 해당 행위를 수행하고, 머신을 옮기거나, 미리 로컬에 이미지를 구축해두는 방법도 있습니다. )
먼저 docker를 설치하도록 합니다.
1. sudo apt update
-> 설치 전에 현재 apt list를 최신으로 갱신합니다.
2. sudo apt install docker.io
-> docker를 실제로 설치합니다.
3. sudo usermod -aG docker $USER
-> 기본 설정값으로는 , 로그인 사용자에게 docker 대한 실행 접근 권한이 없어서, 여러가지 문제가 발생합니다. 이를 해결하기 위하여, 사용자에게 권한을 주는 명령입니다.
4. sudo apt install docker-compose
(선택사항) docker-compose를 설치합니다.
docker의 설치가 끝났으니, 이제 gitlab을 설치하도록 하겠습니다.
1) docker-compose가 없는 경우.
docker run --detach \
--hostname $HOST_IP \
--publish $HOST_SSL_PORT:443 \
--publish $HOST_HTTP_PORT:80 \
--publish $HOST_SSH_PORT:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
--volume /srv/backups:/var/opt/backups \
gitlab/gitlab-ce:latest
docker는 반가상화인 관계로 호스트와의 설정에 관련된 부분을 아래와 같이 설정해 줘야합니다.
위의 내용에서,
$HOST_IP : 호스트 리눅스 머신의 IP
$HOST_SSL_PORT : docker의 SSL을 호스트에서 노출할 Port
$HOST_HTTP_PORT : docker의 웹접속(without SSL)을 호스트에서 노출할 포트
$HOST_SSH_PORT : docker의 SSH를 호스트에서 노출할 포트
이 부분을 숫자와 IP 주소로 바꾸어 입력하시고 실행하시면 됩니다.
2) docker-compose를 설치한 경우.
임의의 디렉토리에 docker-compose.yml 파일을 생성하고
아래의 내용을 작성하여 넣습니다.
---- 파일 내용 시작 ---
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: '$HOST_IP'
container_name: gitlab
ports:
- '$HOST_HTTP_PORT:80'
- '$HOST_SSL_PORT:443'
- '$HOST_SSH_PORT:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
- '/srv/backups:/var/opt/backups'
---- 파일 내용 끝 ----
각 항목의 내용은 1)일 때와 같습니다.
해당 디렉토리로 이동 후, 아래의 명령을 수행합니다.
docker-compose up -d
* 실행 확인하기,
애석하게도, gitlab은 그렇게 간단하고 가벼운 솔루션은 아닙니다.
명령줄에서 다음과 같이 입력하여, 실행 상태를 확인합니다.
docker ps -a
status가 healthy으로 바뀌기 전에는 서버 구동 작업 중이라고 생각하시면 됩니다.
(저의 테스트 머신에서는 약 3분 정도가 소요되었습니다.)
running 상태로 바뀌고 나면, 지정한 port로 접속합니다.
해당 server의 지정한 port로 접속하여 웹사이트가 화면에 나오면, 정상적으로 설치가 된 것입니다.
이 때 화면에서는 비밀번호 설정을 요구하는 화면이 출력되는데, 이 비밀번호는 전체 관리자의 비밀번호입니다.
설치시에도 변경은 가능하지만, 스크립트에 해당 내용을 직접 기입해야 하는 문제가 있으므로, 이 방식을 더 추천합니다.
모든 과정을 거치고 나면 다음과 같은 화면이 출력 됩니다.
초기 로그인 페이지 |
이제 상세한 설정이 남았습니다.
다음 글에서 계속 하겠습니다.
댓글 없음:
댓글 쓰기
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.