.png)
Gitlab의 Omnibus 버전을 설치하고 Apache에서 실행해보십시오 (이어서 SSL 및 자동 백업도)
조사하면 이런 기사가 상당히 있었지만, 이미 낡은 버전이거나, 정보가 흩어져 있거나 하기 때문에, 최신 버전으로 해 보았을 경우의 메모.
어쩌면 불필요한 설정이 있을지도 모르지만, 일단 이것으로 동작 확인은 OK.
이하에 설정 파일 포함한 전모를 기재.
설치 환경
서버
CentOS 6.5 메모리는 우선 gitlab 추천의 2GB
Gitlab Omnibus 패키지 설치
/etc/gitlab/gitlab.rb
※ 설치 당초, external_url 부분에 "="가 붙어 있지 않았지만, 아무래도 기재하지 않으면 갈 수없는 모양
/var/opt/gitlab/nginx/conf/gitlab-http.conf /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
마지막으로
HTTPS로 리디렉션
여러 가지 생략
이제 htps : // 기 t. 왓 x. 이 m
자동 백업 설정
/etc/rsyncd.conf
비고
어쩌면 불필요한 설정이 있을지도 모르지만, 일단 이것으로 동작 확인은 OK.
이하에 설정 파일 포함한 전모를 기재.
설치 환경
Gitlab Omnibus 패키지 설치
Gitlab의 HP 에서 대상 OS를 선택하면 설치 방법이 나온다.
Gitlab 본체의 인스톨은 상기와 같이 해 가면 순조롭게 완료한다(정말 2분으로 끝난다)
이번에는 GitLab Community Edition 8.7.0의 최신판을 설치했다.
Omnibus 패키지라면 postgres도 nginx 모두 필요한 것을 설치, 설정해주기 때문에 매우 편하지만, 이미 설치하고 있는 postgres나 nginx를 사용하는 경우는 스스로 설정해야 하기 때문에 약간 문턱이 높아진다 .
Apache에서 운영
Gitlab은 nginx를 웹 서버로 작동하지만 이미 사용중인 서버가 있고 Apache를 사용하여 80 번 포트로 액세스하고 싶다면 조금 한 번 더 추가해야 할 것 같습니다.
그래서 리버스 프록시를 이용하여 Apache에서 받은 요청을 nginx에 전달함으로써 실현시킨다.
gitlab 설정 변경 (SSL도 지원)
이번 요청의 수락이 되는 URL을 htps : // 기 t. 왓 x. 이 m 로 한다
Gitlab은 nginx를 웹 서버로 작동하지만 이미 사용중인 서버가 있고 Apache를 사용하여 80 번 포트로 액세스하고 싶다면 조금 한 번 더 추가해야 할 것 같습니다.
그래서 리버스 프록시를 이용하여 Apache에서 받은 요청을 nginx에 전달함으로써 실현시킨다.
gitlab 설정 변경 (SSL도 지원)
이번 요청의 수락이 되는 URL을 htps : // 기 t. 왓 x. 이 m 로 한다
external_url = 'https://git.xxxxx.com' # urlの設定。今回はhttps
・・・
nginx['listen_addresses'] = ["0.0.0.0", "[::]"]
nginx['listen_port'] = 4080 # nginxをポート4080で受けるように設定
・・・
nginx['ssl_certificate'] = "path_to_cert" # これいらないかも?
nginx['ssl_certificate_key'] = "path_to_key" # これも
・・・
# あとはsmptのところでメール送信のセットアップを行う
※ 설치 당초, external_url 부분에 "="가 붙어 있지 않았지만, 아무래도 기재하지 않으면 갈 수없는 모양
server {
listen 0.0.0.0:4080;
listen [::]:4080;
server_name git.xxxxx.com; # ここを追記
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
# host:
host: 'git.xxxxx.com'
port: 443
https: true
# Uncommment this line below if your ssh host is different from HTTP/HTTPS one
# (you'd obviously need to replace ssh.host_example.com with your own host).
# Otherwise, ssh host will be set to the `host:` value above
ssh_host: 'git.xxxxx.com'
url: https://git.xxxxx.com
마지막으로
gitlab-ctl reconfigre
에서 설정을 로드하고 gitlab-ctl restart
로 다시 시작합니다.Apache 설정
80번 포트측(HTTP)
HTTPS로 리디렉션
<VirtualHost *:80>
ServerName git.xxxxx.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R]
</VirtualHost>
443번 포트측(HTTPS)
여러 가지 생략
<VirtualHost *:443>
ServerName git.xxxxx.com:443
SSLEngine on
SSLCertificateFile path_to_cert
SSLCertificateKeyFile path_to_key
SSLCertificateChainFile path_to_chain # 中間証明があれば
SSLProxyEngine On
ProxyRequests off
ProxyPass / http://127.0.0.1:4080/
ProxyPassReverse / http://127.0.0.1:4080/
ProxyPass /assets http://127.0.0.1:4080/assets
ProxyPassReverse /assets http://127.0.0.1:4080/assets
</VirtualHost>
/etc/init.d/httpd restart
# sslのpassを入力
이제 htps : // 기 t. 왓 x. 이 m
자동 백업 설정
gitlab의 백업은 명령 한 줄에서 얻을 수 있습니다.
/opt/gitlab/bin/gitlab-rake gitlab:backup:create
이제/var/opt/gitlab/backups에 tar로 백업이 생성됩니다.
자세한 내용은 여기에 설명되어 있습니다.
백업 보존 기간 설정
다시/etc/gitlab/gitlab.rb로 설정하는 부분이 있기 때문에 아래와 같이 설정
gitlab_rails['backup_keep_time'] = 604800 # 7日間分保存する
cron으로 하루 1회 자정 2시에 백업을 한다
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
원격 서버에 백업
svn이면 svnsync 등 편리한 것이 있었지만, 그다지 생각하지 않기 때문에 rsync를 사용하여 원격 서버에 tar 파일을 디렉토리 별 백업.
rsync -avz --delete /var/opt/gitlab/backups/ [remoteのIP]::gitlab
gitlab의 백업 작업과 함께 스크립트를 짜두면 백업하고 나서 원격으로 저장할 수 있다. 다만, 이것이라면 백업을 취할 수 없는 나날이 계속되었을 경우에 모두 사라져 버리므로 파일 마다 백업하는 편이 좋을 것 같다.
원격 서버 측 설정
rsync를 설치하고 아래와 같이 설정.
/opt/gitlab/bin/gitlab-rake gitlab:backup:create
gitlab_rails['backup_keep_time'] = 604800 # 7日間分保存する
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
rsync -avz --delete /var/opt/gitlab/backups/ [remoteのIP]::gitlab
[gitlab] # ここは上記の[remoteのIP]::gitlabの"gitlab"と同じ命名にする
path = /path/to/backup
hosts allow = [バックアップ元サーバのIP]
hosts deny = *
list = true
uid = root
gid = root
read only = false