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
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
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
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が表示されます。
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
# 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に定義して自動バックアップする。
# visudo コメントアウト #Defaults requiretty 追加 jenkins ALL=(ALL) NOPASSWD: /bin/ls, /bin/tar
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