====== 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
<
---
>
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
設定を変更してユーザ認証を強制することで、現象の回避が可能です。
* 現在の設定を確認
# git config -l
~省略~
remote.origin.url=http://192.168.56.14/gitbucket/git/user/pj.git
* 認証ユーザの設定
git config remote.origin.url http://user@192.168.56.14/gitbucket/git/user/pj.git
* push
# git push
Password: userのパスワード
Counting objects: 5, done.
Writing objects: 100% (3/3), 243 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Updating references: 100% (1/1)
To http://user@192.168.56.14/gitbucket/git/user/pj.git
6282168..78800c3 master -> master
Edit
==== バックアップ ====
ユーザ直下の.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に定義して自動バックアップする。
* jenkinsユーザにsudo権限付与(設定しないと、/home/tomcat/配下にアクセスできないのでエラーになる)
# visudo
コメントアウト
#Defaults requiretty
追加
jenkins ALL=(ALL) NOPASSWD: /bin/ls, /bin/tar
* jennkinsの「シェルの実行」に定義
sudo tar zcf /var/backup/gitbucket-`date +%Y%m%d%H%M%S`.tar.gz /home/tomcat/.gitbucket
==== リストア ====
適当な場所で解凍して、オリジナルの場所に設置・上書きします。
# 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