Redmine git hosting get started

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
redmine git hosting / get started 문서번역
원본
http://redmine-git-hosting.io/get_started/

개요

이 문서는 위의 원본 문서를 직역에 가깝게 번역한 문서이며, ubuntu 또는 debian 기반의 linux 배포판을 기준으로 설명되어 있다. redhat 계열의 설치는 따로 다루지 않고 있음을 주의한다.

1단계 : 설치에 필요한 의존성

Gtkd note.png 업데이트하기 전에 플러그인은 데이터베이스를 백업하고 Redmine을 중지하는 것을 잊지 마십시오!

# Install dependencies (On Debian/Ubuntu)
root# apt-get install build-essential libssh2-1 libssh2-1-dev cmake libgpg-error-dev

# Install dependencies (On Fedora/CentoS/RedHat)
root# yum groupinstall "Development Tools"
root# yum install libssh2 libssh2-devel cmake libgpg-error-devel

Bitnami Redmine Stack 을 사용하는 경우 설치 준비를하기 전에 다음을 실행해야합니다 : Bitnami Installation


2단계 : plugin 클론하기

Redmine 을 설치했다고 가정합니다 :

# Switch user
root# su - redmine

# First git clone Bootstrap Kit
redmine$ cd REDMINE_ROOT/plugins
redmine$ git clone https://github.com/jbox-web/redmine_bootstrap_kit.git
redmine$ cd redmine_bootstrap_kit/
redmine$ git checkout 0.2.5

# Then Redmine Git Hosting plugin
redmine$ cd REDMINE_ROOT/plugins
redmine$ git clone https://github.com/jbox-web/redmine_git_hosting.git
redmine$ cd redmine_git_hosting/
redmine$ git checkout 1.2.3

# Install gems and migrate database
redmine$ cd REDMINE_ROOT
redmine$ bundle install --without development test
redmine$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production NAME=redmine_git_hosting

Gtkd note.png bundle exec 를 실행하기 전에 플러그인의 Gemfile (REDMINE_ROOT/plugins/redmine_git_hosting/Gemfile)을 수정하고 Redmine 버전 (2.x 또는 3.x)에 해당하는 줄을 주석 처리 / 주석 해제해야합니다.

설치 되어있지 않다면 위키를 따라 Redmine을 설치할 수 있습니다 : How to install Redmine

Bitnami Stack 의 bundle 커맨드에 불만을 제기하려면 이것을 보시기 바랍니다.


3단계 : Redmine 운영 사용자(linux user)를 위한 SSH Key 의 생성

비 대화식 모드(non-interactive mode)에서 SSH를 통해 명령을 보내야하므로 SSH 키에는 암호 구문(-N ' ' 인수)이 없어야 합니다. 또한 SSH 키를 REDMINE_ROOT 경로 외부에 저장하는 것이 좋습니다.

root$ su - redmine
redmine$ mkdir ssh_keys
redmine$ ssh-keygen -N '' -f ssh_keys/redmine_gitolite_admin_id_rsa


Bitnami stack 의 경우:

bitnami$ cd /opt/bitnami/apps/redmine/
bitnami$ mkdir ssh_keys
bitnami$ chgrp daemon ssh_keys
bitnami$ ssh-keygen -N '' -f ssh_keys/redmine_gitolite_admin_id_rsa
bitnami$ chmod 640 ssh_keys/*


Redmine을 실행하기 위해 Apache를 사용하는 경우 :

root# sudo -u www-data  mkdir -p            /var/www/redmine/ssh_keys
root# sudo -u www-data  ssh-keygen -N '' -f /var/www/redmine/ssh_keys/redmine_gitolite_admin_id_rsa

이 경로를 가리키도록 플러그인을 구성해야합니다.[1]


4단계 : Redmine 을 실행하는 사용자에 gitolite-admin 에 RW + 액세스 권한을 부여

Gitolite 를 이미 설치한 경우라면, gitolite.conf 파일에 다음을 추가하십시오.

repo    gitolite-admin
  RW+                            = redmine_gitolite_admin_id_rsa


그렇지 않다면(gitolite 를 아직 설치하지 않았다면) 다음과 같이 Gitolite (v3)를 설치할 수 있습니다 (위의 행이 자동으로 설정됩니다).

Server requirements:

  * any unix system
  * sh
  * git 1.6.6+
  * perl 5.8.8+
  * openssh 5.0+
  * a dedicated userid to host the repos (in this document, we assume it
    is 'git'), with shell access ONLY by 'su - git' from some other userid
    on the same server.

Steps to install:

  * login as 'git' as described above

  * make sure ~/.ssh non-existent

  * make sure **Redmine SSH public key** we've just created (step 3) is available at $HOME/redmine_gitolite_admin_id_rsa.pub

  * add this in ~/.profile

        # set PATH so it includes user private bin if it exists
        if [ -d "$HOME/bin" ] ; then
          PATH="$PATH:$HOME/bin"
        fi

  * run the following commands:

        root$ su - git
        git$ mkdir $HOME/bin
        git$ source $HOME/.profile
        git$ git clone git://github.com/sitaramc/gitolite
        git$ gitolite/install -to $HOME/bin
        git$ gitolite setup -pk redmine_gitolite_admin_id_rsa.pub


5단계 : Gitolite 에 hook key 를 승인하기

root$ su - git
git$ vi (or nano) .gitolite.rc

## Look for GIT_CONFIG_KEYS and make it look like :
GIT_CONFIG_KEYS  =>  '.*',

## Enable local code directory
LOCAL_CODE       =>  "$ENV{HOME}/local"

## then save and exit


6단계 : sudo 의 설정

root 로 /etc/sudoers.d/redmine 파일을 만들고이 내용을 그 안에 넣으십시오 :

Defaults:redmine !requiretty
redmine ALL=(git) NOPASSWD:ALL


이후에 파일을 chmod 하십시오.

root# chmod 440 /etc/sudoers.d/redmine


7단계 : known_hosts 목록에 Gitolite 서버 추가

Redmine 사용자가 known_hosts 목록에 Gitolite 서버를 가지고 있는지 확인하십시오. 이것은 또한 Gitolite 가 작동하는지 확인하는 좋은 검사입니다.

암호를 요구해서는 안됩니다.

또한 Redmine 사용자 (<redmine user home>/.ssh/config)에 대한 SSH 설정 파일은 더 이상 필요하지 않습니다! 존재하는 경우 제거하십시오!

root$ su - redmine
redmine$ ssh -i ssh_keys/redmine_gitolite_admin_id_rsa git@localhost info
# accept key


다음과 같은 결과를 얻어야합니다.

hello redmine_gitolite_admin_id_rsa, this is gitolite v2.3.1-0-g912a8bd-dt running on git 1.7.2.5
the gitolite config gives you the following access:
    R   W  gitolite-admin
    @R_ @W_ testing

또는 이런결과가 나올 수도 있습니다.

hello redmine_gitolite_admin_id_rsa, this is git@dev running gitolite3 v3.3-11-ga1aba93 on git 1.7.2.5
    R W  gitolite-admin
    R W  testing

Gtkd note.png 이 메시지 중 하나를 얻으면 제대로 되고 있는 것입니다


8단계 : post-receive hook 용 Ruby 인터프리터 설치

우리의 후 수신 훅은 각 커밋 후에 트리거되고 Redmine에서 변경 집합을 가져 오는 데 사용됩니다. Ruby 로 작성 되었기 때문에 서버에 Ruby 를 설치해야합니다. 이것은 RVM 과 충돌하지 않습니다. 적어도 후크에는 Ruby 1.9 가 필요합니다.

root$ apt-get install ruby
# or
root$ yum install ruby


9단계 : 설치 마무리 - 설정

플러그인이 설치되었습니다. Redmine 을 다시 시작할 수 있습니다 :)

하지만 몇 가지 추가 설정을 해야합니다.

  1. Administration -> Settings -> Repositories 에서 Xitolite 리포지토리 사용
  2. Administration -> Redmine Git Hosting 에서 플러그인 설정을 구성하십시오. 사양은 다음과 같습니다:
    • SSH key 의 경로
    • temp 디렉토리 경로 (GitoliteAdmin 저장소를 저장하기 위해)
    • 접근 URL(SSH, HTTP, HTTPS)
    • Hooks url(이 URL은 저장소보기 새로 고침을 트리거하는 Gitolite hook에 의해 호출되므로, 호출 가능해야 함)
    • Hooks install (기존 Gitolite hook 을 덮어 쓸 수 있습니다.)
  3. Administration -> Redmine Git Hosting Config Checks 탭에서 설치를 확인하십시오.
  4. Administration -> Roles 페이지에서 일부 권한을 설정합니다. 특히 사용자가 SSH 키를 만들 수 있게 하려면(아래를 참고해 주세요)


플러그인을 구성하기 전에 다음을 살펴보십시오. [Repositories 스토리리 설정전략]

Bitnami Stack (다시)을 사용하는 경우 : 임시 디렉토리를 올바르게 구성해야합니다. [방법은 다음과 같습니다]


10단계 : 당신의 ssh key 를 추가하기

저장소에 대한 접근은 Redmine 프로젝트의 구성원 및 구성원의 역할을 기반으로합니다. 저장소를 복제 / 업데이트하려면 프로젝트 구성원으로 적절한 역할을 가진 사용자를 추가해야합니다.

또한 Administration -> Roles 페이지에서 역할의 권한을 구성해야합니다.

Smart HTTP 를 통해 독점적으로 repositories 에 액세스하지 않으려면 SSH 를 통해 연결하기 위해 공개 키(public key)를 설정해야합니다.

이렇게 하려면 브라우저를 열고 Redmine 에 로그인 한 다음 페이지의 오른쪽 상단 모서리에있는 My Account 링크를 클릭 한 다음 Add SSH keys 링크를 클릭하십시오.

SSH 키는 고유해야합니다. 즉, Redmine 에서 설정 한 키가 이미 Gitolite 저장소에 존재해서는 안됩니다.

Gtkd note.png 특히, Gitolite 관리 키로 설정 한 키를 다시 사용하지 마십시오.


이 시점에서 플러그인은 작동해야합니다. 그렇지 않은 경우 여기를 살펴보십시오. [Troubleshooting]


[작동하는지 알려주세요! (또는 작동하지 않는 경우에도 말이죠)]


Notes

  1. 이 문서내의 9단계에 대한 link 입니다.