Version Control/Git

CentOS 7 에서 GitLab 설치하기

후뤼한잉여 2015. 11. 10. 00:18

CentOS 7 에서 GitLab 설치하기

1) 개요

개인적으로 VM Ware을 통해 Git서버를 구성하던 중 지인들과 같이 사용하게 되어 관리의 편의성을 위해 GitLab 구성 중 작성했던 내용을 간단하게 나마 정리하기 위해 작성되었습니다.

2) 설치하기

  1. 의존패키지 설치하기
    sudo yum install curl openssh-server postfix
    
  2. GitLab에서 사용하기 위해 ssh 및 이메일 발송 서비스(postfix) 서비스 자동실행 설정하기
    sudo systemctl enable sshd postfix
    sudo systemctl start sshd postfix
    
  3. GitLab 패키지 다운로드
    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    sudo yum install gitlab-ce
    
  4. GitLab 레파지토리 설치를 위한 정보 설정하기
    sudo vi /etc/gitlab/gitlab.rb
    
    • gitlab.rb에 변경할 부분(개인이 필요한 부분만 수정하면 됩니다.)
      external_url "[IP주소:포트]" //외부에서 접속할 주소 및 포트정보 수정
      git_data_dir "[GitLab 레파지토리로 사용할 경로]"
      user['username'] = "[GitLab 레파지토리 관리할 계정명]"
      user['group'] = "[GitLab 레파지토리 관리할 계정의 그룹명]“
      user[‘home’] = “[GitLab 레파지토리 관리할 계정의 홈디렉토리]”
      user[‘gid’] = “[GitLab 레파지토리 관리할 계정의 GID]” //id 명령어로 확인이 가능합니다.
      user[‘uid’] = “[GitLab 레파지토리 관리할 계정의 UID]” //id 명령어로 확인이 가능합니다.
      gitlab_rails['smtp_enable'] = true
      gitlab_rails['smtp_address'] = "[SMTP 주소]" //G-mail 예) smtp.gmail.com
      gitlab_rails['smtp_port'] = [SMTP 포트]//G-mail 예) 587
      gitlab_rails['smtp_user_name'] = "[메일 ID]"
      gitlab_rails['smtp_password'] = "[메일 비밀번호]"
      gitlab_rails['smtp_domain'] = "[SMTP 도메인]" //G-mail 예) gmail.com
      gitlab_rails['smtp_authentication'] = :plain
      gitlab_rails['smtp_enable_starttls_auto'] = true
      
  5. GitLab 레파지토리 설치하기
    sudo gitlab-ctl reconfigure
    
  6. GitLab 페이지 접속을 위한 방화벽 해제하기
    sudo firewall-cmd --permanent --add-service=http //내부 웹 서버인 Nginx 포트
    sudo firewall-cmd --zone=public --add-port=[위에서 설정한 포트]/tcp --permanent
    sudo systemctl reload firewalld
    
  7. GitLab 재시작하기
    sudo gitlab-ctl restart
    
    • 만약 콘솔의 표시정보가 이상하게 변했다면 아래 내용 적용하기
      sudo vi /etc/profile
      
      아래 내용 추가
      export PS1="[\u@\h \w]\\$ "
      
  8. GitLab 초기 설정하기
    IP주소:포트로 접속
    
    초기 관리자 계정 및 암호
    Username: root 
    Password: 5iveL!fe
    
  • GitLab 서버의 시작 / 종료 명령어
    1. GitLab 서버 시작
      sudo gitlab-ctl start
      
    2. GitLab 서버 종료
      sudo gitlab-ctl stop
      
  • 502 에러가 발생한다면 아래 내용 적용하기
    log 디렉토리에 권한이 없어서 발생한 경우가 대부분인듯 하다.
    sudo chown -R [GitLab관리계정명:GitLab관리계정그룹명] /var/log/gitlab/unicorn
    sudo chown -R [GitLab관리계정명:GitLab관리계정그룹명] /var/log/gitlab/gitlab-git-http-server
    sudo chown -R [GitLab관리계정명:GitLab관리계정그룹명] /var/log/gitlab/gitlab-rails
    sudo chown -R [GitLab관리계정명:GitLab관리계정그룹명] /var/log/gitlab/gitlab-shell
    sudo chown -R [GitLab관리계정명:GitLab관리계정그룹명] /var/log/gitlab/sidekiq
    이 외에도 /var/opt/gitlab 부분도 확인해보기.
    

* GitLab은 내부적으로 Nginx가 80포트, Unicorn이 8080포트, GitLab의 지정된 포트 3가지 정도를 사용하게 된다.