웹사이트 검색

Ubuntu 15.04에서 PostgreSQL 및 Nginx와 함께 Gitlab을 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 1단계 - Linux 시스템 업데이트
  3. 2단계 - Gitlab 종속성 설치
  4. 3단계 - Ruby 및 Go 설치
  5. 4단계 - 새 Linux 사용자 생성 및 PostgreSQL 데이터베이스 구성
  6. 5단계 - Redis 서버 구성
  7. 6단계 - GitLab 설치
    1. - GitLab 구성
    2. - 데이터베이스 구성
    3. - 보석 설치
    4. - Gitlab-shell 설치
    5. - gitlab-workhorse 설치
    6. - 데이터베이스 초기화 및 gitlab 기능 활성화\n

    Gitlab은 Ruby로 작성된 웹 기반 git 저장소 관리 애플리케이션입니다. GitHub와 유사하며 프로젝트 위키 및 문제 추적 시스템과 같은 기능이 포함되어 있습니다. Gitlab 프로젝트는 Dmitriy Zaporozhets에 의해 시작되었으며 이 소프트웨어는 IBM, StackExchange, NASA, Alibaba, Red Hat 등을 포함한 100.000개 이상의 기술 회사에서 사용됩니다. Gitlab은 자신만의 git 서버를 구축하기 위한 최고의 솔루션 중 하나입니다.

    Gitlab은 Ubuntu, Debian 및 CentOS와 같은 주요 Linux 배포판에서 지원됩니다. Gitlab은 Debian/Ubuntu용 .deb 패키지와 Rhel 및 CentOS용 .rpm 패키지를 제공합니다. 패키지에는 Ruby, Redis, Nginx, Unicorn 및 PostgreSQL을 포함한 모든 종속성이 포함되어 있습니다. Gitlab은 Community Edition(Gitlab CE)과 Enterprise Edition(Gitlab EE)의 두 가지 버전으로 제공됩니다. 자체 git 서버를 구축하려는 경우 무료 CE 버전이 필요한 모든 기능을 제공할 가능성이 높습니다.

    이 튜토리얼에서는 Ubuntu 15.04 버전에서 PostgreSQL을 데이터베이스 시스템으로, Nginx를 웹 서버로 사용하여 Gitlab CE를 설치하는 과정을 단계별로 안내합니다. Ruby 버전 2.x.x, gitlab 안정 버전 8.x를 사용합니다.

    전제 조건

    • 우분투 15.04 - 64비트.
    • CPU 2 코어 - gitlab 사이트에서 권장.
    • 2GB RAM/메모리 - gitlab 사이트에서 권장.
    • 루트 권한.\n

    1단계 - Linux 시스템 업데이트

    Gitlab 종속성을 설치하기 전에 우분투 저장소에서 최신 업데이트를 가져옵니다. SSH 액세스로 ubuntu 서버에 로그인하고 루트 사용자가 된 다음 저장소를 업데이트합니다.

    sudo su
    apt-get update

    2단계 - Gitlab 종속성 설치

    Gitlab에는 이메일 알림을 보내는 redis-server, git-core, nodejs 및 postfix와 같은 많은 소프트웨어 종속성이 있습니다. 단일 apt 명령으로 설치하겠습니다.

    sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs git-core postfix

    참고: postfix 설치 중에 "인터넷 사이트"를 선택한 다음 Enter 키를 눌러 호스트 이름을 확인하세요.

    모든 패키지가 설치된 경우 git 버전을 확인하고 git 버전이 1.7.x 이상인지 확인합니다.

    git --version
    git version 2.1.4

    3단계 - Ruby 및 Go 설치

    Gitlab에는 Ruby 버전 2.x 이상이 필요합니다. 이 튜토리얼에서는 Ruby 버전 2.7을 사용합니다. 이 단계에서는 Ruby를 수동으로(소스에서) 설치해야 합니다. 이전에 시스템에 Ruby를 설치한 경우 아래 명령으로 제거하십시오.

    apt-get remove ruby -y

    다음으로 Ruby를 수동으로 설치합니다. Ruby 소스 파일을 위한 새 디렉터리를 만듭니다.

    mkdir -p /tmp/ruby && cd /tmp/ruby

    curl 명령을 사용하여 루비 소스를 다운로드합니다.

    curl -O --progress https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.7.tar.gz

    이제 ruby.tar.gz를 확인하고 추출한 다음 ruby 디렉토리를 입력하십시오.

    echo 'e2e195a4a58133e3ad33b955c829bb536fa3c075  ruby-2.1.7.tar.gz' | shasum -c - && \
    tar xzf ruby-2.1.7.tar.gz && \
    cd ruby-2.1.7

    Ruby를 컴파일하고 설치합니다.

    ./configure --disable-install-rdoc --prefix=/usr/local
    make
    make install

    다음 단계로 Go를 설치해야 합니다. gitlab 8.0부터 git HTTP 요청은 Go로 작성된 gitlab-workhorse에 의해 처리됩니다. gitlab-workhorse를 설치하려면 go 컴파일러가 필요하며 다운로드하여 설치합니다.

    Go용 새 디렉터리 만들기:

    mkdir -p /tmp/go && cd /tmp/go

    Go 다운로드 - 64비트 버전을 사용합니다.

    curl -O --progress https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz

    확인하고 "/usr/local/" 디렉토리에 압축을 풉니다:

    echo '46eecd290d8803887dec718c691cc243f2175fe0  go1.5.1.linux-amd64.tar.gz' | shasum -c - && \
    sudo tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz

    이제 bin 디렉터리에서 Go에 대한 심볼릭 링크를 만듭니다.

    sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/

    이제 Ruby와 Go가 설치되었습니다.

    4단계 - 새 Linux 사용자 생성 및 PostgreSQL 데이터베이스 구성

    이 단계에서는 홈 디렉토리가 "/home/git"인 "git"이라는 새 Linux 시스템 사용자를 만듭니다. Gitlab은 나중에 git 사용자로 실행됩니다.

    adduser 명령을 사용하여 새 사용자 git을 만듭니다.

    sudo adduser --disabled-login --gecos 'GitLab' git

    이제 gitlab용 데이터베이스를 구성합니다. Gitlab은 MySQL 및 PostgreSQL을 지원합니다. 이 자습서에서는 권장 데이터베이스 유형인 PostGreSQL을 사용합니다.

    아래의 apt 명령으로 PostgreSQL을 설치합니다.

    sudo apt-get install -y postgresql postgresql-client libpq-dev

    완료되면 PostgreSQL에 로그인하고 gitlab에 대해 "git"이라는 새 역할/사용자를 만듭니다.

    sudo -u postgres psql -d template1
    CREATE USER git CREATEDB;

    그런 다음 "gitlabhq_production"이라는 gitlab용 새 데이터베이스를 만들고 데이터베이스를 git user/role에 부여합니다.

    CREATE DATABASE gitlabhq_production OWNER git;

    이제 postgresql 셸을 종료하고 생성한 데이터베이스로 새 역할/사용자를 테스트합니다.

    \q
    sudo -u git -H psql -d gitlabhq_production

    \git\이라는 새 시스템 사용자가 생성되었습니다.

    gitlab 데이터베이스 "gitlabhq_production"에 부여된 psotgreSQL의 새 역할/사용자 "git"도 생성되었습니다.

    5단계 - Redis 서버 구성

    "/etc/redis" 디렉터리에서 redis 구성 파일을 수정하기 전에 redis.conf.original이라는 이름으로 백업 사본을 만듭니다.

    cd /etc/redis/
    cp redis.conf redis.conf.original

    그런 다음 vim 편집기로 "redis.conf" 파일을 편집합니다.

    vim redis.conf


    45행으로 이동하여 값을 0으로 변경합니다. Redis가 포트가 아닌 유닉스 소켓에서만 수신하도록 하기를 원하기 때문입니다.

    Listen 0

    그런 다음 파일 끝으로 이동하여 redis 소켓과 이에 대한 권한을 추가합니다.

    unixsocket /var/run/redis/redis.sock
    unixsocketperm 777

    파일을 저장하고 종료합니다.

    다음으로 "/var/run" 디렉토리에 redis 소켓을 위한 새 디렉토리를 만들고 디렉토리의 소유자와 권한을 조정합니다.

    mkdir -p /var/run/redis
    chown redis:redis /var/run/redis
    chmod 755 /var/run/redis

    redis 소켓 디렉토리로 이동하여 아래 명령을 실행하십시오.

    cd /var/run/redis
    if [ -d /etc/tmpfiles.d ]; then
      echo 'd  /var/run/redis  0755  redis  redis  10d  -' | sudo tee -a /etc/tmpfiles.d/redis.conf
    fi

    모든 작업이 완료되면 redis 서버를 다시 시작하고 사용자 "git"을 "redis" 그룹에 추가합니다.

    sudo service redis-server restart
    sudo usermod -aG redis git

    6단계 - GitLab 설치

    "/home/git" 디렉토리로 이동하여 GIT 저장소에서 gitlab을 다운로드합니다.

    cd /home/git
    sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 8-2-stable gitlab

    메모 :

    sudo -u git -H clone 명령 = "git" 사용자로 "clone" 명령을 실행합니다.

    - GitLab 구성

    gitlab 디렉토리로 이동하여 gitlab을 구성합니다.

    cd /home/git/gitlab

    gitlab 구성 파일 gitlab.yml.example의 예를 "config" 디렉터리의 gitlab.yml에 복사합니다.

    sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

    gitlab 디렉토리에서 하위 디렉토리 "log and tmp"의 소유자를 git 사용자로 변경합니다.

    sudo chown -R git {log,tmp}

    그런 다음 gitlab(git 사용자)이 쓸 수 있도록 다른 디렉터리에 대한 권한을 변경합니다.

    mkdir -p public/uploads/
    sudo chmod -R u+rwX,go-w log/
    sudo chmod -R u+rwX {tmp,tmp/pids,tmp/sockets,builds,shared/artifacts}
    sudo chmod -R 0750 public/uploads

    유니콘 및 랙 공격 구성의 예를 복사합니다.

    sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
    sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

    이제 아래 git 명령을 사용하여 git 사용자에 대한 전역 설정을 구성해야 합니다.

    sudo -u git -H git config --global core.autocrlf input

    그리고 "resque.yml" 파일을 구성 디렉토리에 복사하여 redis 연결을 구성한 다음 vim으로 편집하여 redis 구성을 변경하고 소켓에서 수신 대기하도록 redis를 구성한 것처럼 unix 소켓을 사용합니다.

    sudo -u git -H cp config/resque.yml.example config/resque.yml

    - 데이터베이스 구성

    다음 단계는 GitLab DB 설정을 구성하는 것입니다. 우리는 데이터베이스에 postgreSQL을 사용합니다. 구성 파일을 복사하고 권한을 변경합니다.

    sudo -u git -H cp config/database.yml.postgresql config/database.yml
    sudo -u git -H chmod o-rwx config/database.yml

    - 보석 설치

    sudo gem install bundler
    sudo -u git -H bundle install --deployment --without development test mysql aws kerberos

    명령이 완료될 때까지 기다리십시오.

    - Gitlab-shell 설치

    Gitlab-shell은 Gitlab에 대한 SSH 액세스 및 저장소 관리를 허용합니다. 기본 구성을 사용하므로 편집할 필요가 없습니다. 아래 명령을 실행하여 gitlab-shell을 설치합니다.

    sudo -u git -H bundle exec rake gitlab:shell:install[v2.6.8] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production

    REDIS_URL = 프로덕션 환경에서 redis 구성을 위해 유닉스 소켓을 사용해야 합니다.

    - gitlab-workhorse 설치

    Gitlab-workhorse는 Go로 코딩된 유니콘의 Git HTTP 트래픽을 처리하는 작은 데몬입니다. 복제 및 설치:

    cd /home/git
    sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git
    cd gitlab-workhorse
    sudo -u git -H git checkout 0.4.2
    sudo -u git -H make

    - 데이터베이스 초기화 및 gitlab 기능 활성화

    gitlab 설치 디렉토리로 이동하여 아래 명령을 실행하십시오.

    cd /home/git/gitlab
    sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production

    테이블을 생성하려면 "yes"를 입력하십시오.

    결과는 사용자 이름이 "root"이고 암호가 "5iveL!fe"인 gitlab 계정입니다.

    7단계 - Init 스크립트 구성

    gitlab 설치 디렉토리에서 gitlab init 스크립트를 복사하고 update-rc.d 명령으로 부팅 시 시작하도록 gitlab을 추가합니다.

    sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
    sudo update-rc.d gitlab defaults 21

    그런 다음 로그 관리를 위해 gitlab logrotate 구성을 복사합니다.

    sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

    애플리케이션 상태를 확인하고 자산을 컴파일합니다.

    sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
    sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

    오류가 없으면 다음을 사용하여 gitlab을 시작합니다.

    /etc/init.d/gitlab start

    8단계 - Nginx 설치 및 구성

    Nginx를 프런트 엔드 웹 서버로 사용하여 브라우저 요청을 처리합니다. 다음 apt 명령으로 설치하십시오.

    apt-get install nginx -y

    gitlab 디렉터리에서 Nginx 가상 호스트 구성을 복사하고 기본 Nginx 기본 가상 호스트를 제거합니다.

    sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
    sudo rm /etc/nginx/sites-enabled/default

    vim으로 구성 파일을 편집합니다.

    sudo vim /etc/nginx/sites-available/gitlab

    HTTP 섹션에서 Listen 및 ServerName 줄의 값을 변경합니다.

    Listen *:80; #Port Default

    #Listen 0.0.0.0:80; #comment one of this

    ServerName my.gitlab.me; #Gitlab FQDN/Domain

    저장 및 종료.

    gitlab 가상 호스트를 활성화하고 nginx를 시작한 다음 gitlab을 다시 시작합니다.

    sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
    service nginx start
    /etc/init.d/gitlab restart

    이제 my.gitlab.me(서버에 대해 선택한 호스트 이름)에서 브라우저로 gitlab에 액세스하고 기본 사용자 이름 "root"로 로그인할 수 있습니다. 및 암호 "5iveL!fe".

    먼저 gitlab 기본 비밀번호를 비밀번호로 바꿔야 합니다.

    Ubuntu 15.04에서 PostgreSQL 및 Nginx를 사용하는 Gitlab 8이 이제 성공적으로 설치되었습니다.

    메모 :

    예를 들어 "502 불량 게이트웨이"와 같은 오류가 있는 경우 유니콘 시간 초과를 늘리거나 하드웨어를 업그레이드하여 수정하십시오. gitlab 설치 디렉토리로 이동하여 vim으로 unicorn.rb 파일을 편집합니다.

    sudo -u git -H vim config/unicorn.rb

    https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide에서 Gitlab 문제 해결에 대해 자세히 알아보세요.

    결론

    Gitlab은 Ruby로 작성된 오픈 소스 git 저장소 관리 소프트웨어입니다. 자신의 git 서버를 구축하는 최고의 솔루션 중 하나입니다. Gitlab은 Dmitriy Zaporozhets에 의해 만들어졌으며 Gitlab CE(Community Edition) 및 Gitlab EE(Enterprise Edition)의 두 가지 버전으로 제공됩니다. Gitlab은 100.000개 이상의 기술 회사에서 사용하는 아름다운 인터페이스로 설치 및 구성이 쉽습니다. 개발자가 다른 개발자와 함께 응용 프로그램을 구축하는 데 도움이 되는 매우 강력한 소프트웨어입니다.