Ubuntu 15.04에서 PostgreSQL 및 Nginx와 함께 Gitlab을 설치하는 방법
이 페이지에서
- 전제 조건
- 1단계 - Linux 시스템 업데이트
- 2단계 - Gitlab 종속성 설치
- 3단계 - Ruby 및 Go 설치
- 4단계 - 새 Linux 사용자 생성 및 PostgreSQL 데이터베이스 구성
- 5단계 - Redis 서버 구성
- 6단계 - GitLab 설치
- - GitLab 구성
- - 데이터베이스 구성
- - 보석 설치
- - Gitlab-shell 설치
- - gitlab-workhorse 설치
- - 데이터베이스 초기화 및 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 update2단계 - 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.43단계 - 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.7Ruby를 컴파일하고 설치합니다.
./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/redisredis 소켓 디렉토리로 이동하여 아래 명령을 실행하십시오.
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 git6단계 - 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/defaultvim으로 구성 파일을 편집합니다.
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개 이상의 기술 회사에서 사용하는 아름다운 인터페이스로 설치 및 구성이 쉽습니다. 개발자가 다른 개발자와 함께 응용 프로그램을 구축하는 데 도움이 되는 매우 강력한 소프트웨어입니다.