본문 바로가기
CodeLab/Linux

11. 리눅스(CentOS) 개발 놀이터 만들기 - git과 gitlab 설치

by 블리드카가 2017. 6. 2.
728x90

안녕하세요~ 
 
오늘은 git과 gitlab설치에 관련한 글을 작성해보겠습니다. 

gitlab설치에 여러부가적인 설치가 많다고 알려져 있어서 난관이 많으리라 예상이 되었었는데, 공식 홈페이지 설명을 따라하면 손쉽게 설치가 가능하였습니다. 아마도 gitlab에서 설치를 간편하게 하기위해 노력한 결과물이겠지요

시작해보겠습니다~

 
    1. git 설치

일단 설치가 되어 있는지 확인해보겠습니다.
git --version



저는 1.8.3.1 버전이 설치되어 있습니다. 저는 최신 버전(?)을 사용하기 위하여 1.8.3 버전을 제거하겠습니다.
yum remove git

yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm

최신 버전을 사용하기 위해서 소스코드를 컴파일 해서 설치를 할 수도 있으나 업그레이드나 여러가지 불편함이 있기에 Wandisco 사에서 운영하는 repository를 사용하겠습니다. 해당 repository를 사용하기 위하여 아래의 링크를 install 합니다.
yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm
그리고 다시 git을 install 해줍니다.
yum install git
다시 install후 다시 버전을 확인해봅니다.


2.11버전이 설치 되었습니다. 사실 최신은 2.13 이 현재로서는 가장 최신인데 오픈소스 회사의 repository기 때문에 가장 최신버전은 아닙니다.

    2. gitlab 설치

앞서 이야기 드린 것 처럼 공식 홈페이지의 내용을 따라하면 손쉽게 설치가 됩니다.  살짝 설정을 바꿔줄 부분은 있습니다.


공식 홈페이지는 아래가 처음 설치 할 것으로 소개하고 있는데요, 아마 기본적으로 CentOS를 설치할 때 이미 설치되어 있는 것들이 있을 것입니다. 
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
설치된 패키지 확인은 아래의 명령어로 확인 하시면 됩니다.
yum list installed | grep 패키지명
두번째 과정은 아래와 같습니다.
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
gitlab설치 파일을 다운로드 받고 gitlab설치를 합니다.

3번째는 그대로 따라하지마시고.. 설정을 바꿔줄 부분이 있습니다.
설정을 바꿔줄 부분은 3가지 입니다.

gitlab페이지가 기본적으로 80포트를 사용하고 인증 관련된 unicorn 부분은 8080포트를 사용합니다.
해당 포트가 Apache와 Tomcat에서 사용하기 때문에 둘이 충돌 합니다. 그리고 이메일을 사용하기 위해 smtp를 설정합니다. 

gitlab설정파일은 아래에 있습니다. 아래의 경로의 파일을 vi에디터로 오픈합니다.
vi /etc/gitlab/gitlab.rb



오픈 하자마자 보시면 external_url 항목이 보이게 됩니다. gitlab페이지가 보여지는 웹사이트 포트번호입니다. 
원하시는 포트번호를 입력합니다. 나중에 방화벽에서도 오픈시킬 번호입니다.
external_url ‘http://localhost:포트번호'
인증과 관련된 unicorn 과 관련된 부분이 두군데가 있습니다. 에디터 화면에서 / 입력한후 8080으로 입력하시면 쉽게 찾으실수 있습니다.



8080으로 되어 있는 줄에서 반드시 ‘#’으로된 주석을 제거 하시고 8080 번호를 다른 포트로 변경합니다. 변경하실때  위에서 변경한 포트와 다른 포트로 변경합니다. 내부적으로 인증과 관련한 포트 번호 입니다. 이 포트는 방화벽을 해제할 필요는 없습니다.

이제 smtp설정입니다. 이는 gitlab에서 유저 인증이나 각종 알림의 용도로 사용됩니다.
에디터 화면에서 'smtp_enable'라는 글자로 검색을 해봅니다. 검색은 / 명령어 입니다. 



저는 위 설정을 google smtp정보를 입력할 것입니다. 그리고 입력하시고 주석을 제거합니다.
위 설정은 필수는 아닙니다. 설정을 하지 않으면 유저 생성할때 패스워드 생성할때 유저에게 이메일 보내어 인증이 된 사용자에게 패스워드를 설정하게 되는데, 이는 사용자를 생성하고 다시 관리자가 다시 사용자 정보에 재진입하여 패스워드를 설정해주면 됩니다.

구글 smtp설정은 아래 링크를 참조하세요.
기타 메일 설정은 아래 링크에 더 있습니다.

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "my.email@gmail.com"
gitlab_rails['smtp_password'] = "my-gmail-password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'


변경이 완료되었으면 저장하고 빠져 나옵니다. 
이제 방화벽 설정을 합니다. 첫번째로 변경한 gitlab페이지가 보여지는 웹사이트 포트번호만 오픈 하시면됩니다.
firewall-cmd --permanent --add-port=변경한포트/tcp
firewall-cmd --reload

그리고 홈페이지에 3번 항목을 실행합니다.
sudo gitlab-ctl reconfigure



이제 설치가 완료되었습니다. 웹브라우저에서 설정변경한 포트로 진입해봅니다.
http://서버아이피:변경한포트번호
입력하고 들어가시면  아래의 화면이 처음 나타납니다.
root 계정의 패스워드 설정화면입니다. 원하시는 암호로 설정하고 root 아이디로 로그인합니다.



root로 로그인하면 나오는 화면입니다.



위쪽에 스패너 아이콘이 관리자용 설정 메뉴입니다. 이곳에서 유저 생성이 가능합니다.




이제 같이 사용하실 유저를 초대 및 생성하시고 프로젝트를 설정하신 후 공동으로 작업이 가능해졌습니다. 

설치가 예상보다 많이 편했던듯합니다. 다른 블로그의 글을 보면 예전 버전에는 ruby도 따로 설치에 db설정등 모든것을 수동으로 해주어야했었던듯 한데 이제는 손쉽게 설치를 지원하는 것 같습니다.

gitlab은 github과 ui나 기능들이 많이 흡사하여 사용하기가 편한 것 같습니다.

다음은 지속적 통합 툴인 젠킨스에 도전해보겠습니다. 감사합니다~




728x90