Redmine git hosting get started

From 흡혈양파의 번역工房
Revision as of 17:42, 21 May 2018 by Onionmixer (talk | contribs) (redmine git hosting / get started 문서번역 내용 추가)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
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 입니다.