目次

gitbucket

インストール

tomcat

GitBucket起動時にtomcatユーザのホームディレクトリをworkに設定するので、ディレクトリがないとエラーになります。
事前にユーザ作成を行っておくのが無難です。

# useradd -s /bin/false tomcat

インストール時にyum-plugin-prioritiesを要求されるので、事前にインストールします。

# yum install -y yum-plugin-priorities

公式リポジトリを追加してtomcatをインストールします。

# rpm -Uvh http://mirrors.dotsrc.org/jpackage/6.0/generic/free/RPMS/jpackage-release-6-3.jpp6.noarch.rpm
# yum install -y --nogpgcheck tomcat7-webapps tomcat7-admin-webapps

gitbucket

webappsディレクトリにgitbucket(warファイル)をDLします。

the release page:https://github.com/gitbucket/gitbucket/releases/

# cd /var/lib/tomcat7/webapps/
# wget https://github.com/gitbucket/gitbucket/releases/download/3.10.1/gitbucket.war

gitbucket-gist-plugin

the release page:https://github.com/gitbucket/gitbucket-gist-plugin/releases

# mkdir -p /home/tomcat/.gitbucket/plugins
# cd /home/tomcat/.gitbucket/plugins/
# wget https://github.com/gitbucket/gitbucket-gist-plugin/releases/download/3.10.0/gitbucket-gist-plugin_2.11-3.10.0.jar
# chown -R tomcat:tomcat /home/tomcat/.gitbucket/plugins

configure & start

apacheと連携するために、httpの8080ポートはコメントアウトして、ajpポートを8009→8089に変更します。
※ajpポートの変更は、セットアップした環境の他のサービスと重複しているため。

# cp -a /etc/tomcat7/server.xml /etc/tomcat7/server.xml.bk
# vi /etc/tomcat7/server.xml

92c92
<     <Connector port="8089" protocol="AJP/1.3" redirectPort="8443" />
---
>     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

apacheのconfファイルを作成します。

# vi /etc/httpd/conf.d/gitbucket.conf

ProxyPass /gitbucket ajp://localhost:8089/gitbucket
ProxyPassReverse /gitbucket ajp://localhost:8089/gitbucket
ProxyRequests Off

サービス起動します。

# service tomcat7 start
# /etc/init.d/httpd restart

http://SERVER/gitbucket/
root / root

ユーザ設定

SSHキーを作成する。

# ssh-keygen                                                          
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): ←何も入力せずにEnter
Enter same passphrase again: ←何も入力せずにEnter
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
15:d8:0b:a9:d0:79:31:ff:7d:0d:8b:72:8c:33:51:22 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
|     . .E=o .    |
|    . o =+.+     |
|     . o .+.  .  |
|      .  ..= o o.|
|        S = = o o|
|           =   . |
|                 |
|                 |
|                 |
+-----------------+

作成したSSHキーを確認する。

# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA ~省略~ cfapXHhBTa38zp50vS546sC+JB8vBXjG1Q== root@localhost.localdomain

GitBucketにログインする
右上のAccount Settings(人の影)をクリック
左のメニューからSSH Keysをクリック
Add an SSH KeyのTitleは適当、Keyは作成したSSHキーを張り付ける。
以後のgitの操作はSSH接続で行う。
任意のリポジトリを開き、右の「HTTP clone URL」の項目でSSHをクリックすると、SSH接続のURLが表示されます。

Tips

CentOS6環境でコマンドラインからPUSHするとエラーになる

http経由でGitBucketにPUSHする際、デフォルトの設定では、匿名ユーザでアクセスしようとしてエラーが発生します。

[root@localhost pj]# git push                                                          
error: Cannot access URL http://192.168.56.14/gitbucket/git/user/pj.git/, return code 22
fatal: git-http-push failed

設定を変更してユーザ認証を強制することで、現象の回避が可能です。

バックアップ

ユーザ直下の.gitbucketディレクトリを丸ごと保存。

# tar zcf /home/tomcat/gitbucket-`date +%Y-%m-%d`.tar.gz /home/tomcat/.gitbucket

必要なときに展開して設置。

# tar zxvf /home/tomcat/gitbucket-2015-05-15.tar.gz

jenkinsに定義して自動バックアップする。

リストア

適当な場所で解凍して、オリジナルの場所に設置・上書きします。

# mkdir /tmp/_backup
# chmod 777 /tmp/_backup
# cd  /tmp/_backup

[_backup]# tar xzvf gitbucket-20150608093100.tar.gz 

[_backup]# /etc/init.d/tomcat7 stop
[_backup]# \cp -ar /tmp/_backup/home/tomcat/.gitbucket /home/tomcat/
[_backup]# /etc/init.d/tomcat7 start
[_backup]# /etc/init.d/httpd restart

バージョンアップ

https://github.com/takezoe/gitbucket/releases

# wget -O gitbucket.war https://github.com/takezoe/gitbucket/releases/download/3.3/gitbucket.war

# /etc/init.d/tomcat7 stop

# mkdir -p /var/backup/
# tar zcf /var/backup/home_gitbucket-`cat /home/tomcat/.gitbucket/version`.tar.gz /home/tomcat/.gitbucket
# tar zcf /var/backup/webapps_gitbucket-`cat /home/tomcat/.gitbucket/version`.tar.gz /var/lib/tomcat7/webapps/gitbucket
# cp /var/lib/tomcat7/webapps/gitbucket.war /var/backup/gitbucket-`cat /home/tomcat/.gitbucket/version`.war

# rm -f /var/lib/tomcat7/webapps/gitbucket.war
# rm -rf /var/lib/tomcat7/webapps/gitbucket
# rm -rf /var/cache/tomcat7/work/Catalina/localhost/gitbucket/*
# cp ./gitbucket.war /var/lib/tomcat7/webapps/

# /etc/init.d/tomcat7 start
# /etc/init.d/httpd restart