LoginSignup
2
2

More than 1 year has passed since last update.

Ubuntu18.04LTS への gitbuckect サーバ引っ越し

Last updated at Posted at 2019-06-07

gitbucket サーバの引っ越し

はじめに

gitbucket を運用していたサーバマシンが不調なので、新サーバマシンへ引っ越しを行う。
その作業手順をここに備忘録として残す。

サーバ環境とファイル構成

旧サーバ

OS: CentOS6
Repos: $HOME/.gitbucket/
Port: 9999

  • ユーザ maintainer の $HOME に環境を構築していた.
  • WEBサーバにデプロイせず、crontab の @reboot タイミングで gitbucket.war を起動し、組み込みサーバで実行していた.
  • gitbucket のデフォルトポート番号8080は、実験用途に空けておきたいので 9999 を使っていた.

新サーバ

OS: Ubuntu18.04LTS
Repos: $HOME/.gitbucket/
Port: 9999

  • クライアント側の設定を変えたくないので、ポート番号は旧サーバと同じにする.
  • gitbucket をサービスとして実行する

元サーバのDB内容をバックアップする

  1. Gitbucket-Webをブラウザ開き、adminでログインする
  2. 右肩のユーザアイコンメニュー>System adminnistration>左サイドバー>DataExport/import>Export
  3. ブラウザにてダウンロードして保存する

次の「データ全体を吸い出す」にてDBも含めて取り出せるが、念のための処置である。
移行に失敗しても、このDBバックアップと、cloneしたgitリポジトリがあれば復元できる。

元サーバからデータ全体を吸い出す

# gitbucket の運用を停止する. 完全に止まるまでちょっと待つ.
pkill -f gitbucket.war
sleep 1

# データをtar.gzに固める.
tar -zcf gitbucket.tar.gz ~/.gitbucket

# 新サーバにデータを転送する.
scp -p gitbucket.tar.gz maintainer@newserver:.

新サーバに実行環境を構築する

  1. 旧サーバをシャットダウンし、新サーバを旧サーバの名前に変える.
  2. 以下の構築を行い、最後にリブートする.
# open port 9999
#   CentOS6: sudo iptables -A INPUT -p tcp -m tcp --dport 9999 -j ACCEPT
#   Ubuntu: nothing to do.

# install Java8 or later
sudo apt install openjdk-11-jre-headless

# get gitbucket
wget https://github.com/gitbucket/gitbucket/releases/download/4.31.1/gitbucket.war
mkdir $HOME/install
mv gitbucket.war $HOME/install/

# recover datas to $HOME/.gitbucket
tar -xzvf gitbucket.tar.gz

# make gitbucket service
sudo vim /etc/systemd/system/gitbucket.service
sudo systemctl enable gitbucket
sudo systemctl start gitbucket
  • 旧サーバとユーザ名が変わっている場合は、$HOME/.gitbucket/* のオーナーを chown で修正する.

service設定

/etc/systemd/system/gitbucket.service
[Unit]
Description = git bucket

[Service]
User=maintainer
##ExecStart = /usr/bin/printenv
# USER=maintainer
# HOME=/home/maintainer
# LOGNAME=maintainer
# JOURNAL_STREAM=9:294136
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# INVOCATION_ID=18b629bd82f5412b86ba9698a84edd8c
# LANG=ja_JP.UTF-8
# SHELL=/bin/bash
# PWD=/
#
ExecStart = /usr/bin/java -Xms512m -Xmx512m -jar ${HOME}/install/gitbucket.war --port=9999
Restart = always
Type = simple
## default output to syslog.
#StandardOutput=null
#StandardError=file:/var/log/gitbucket.log

[Install]
WantedBy = multi-user.target
  • 旧サーバと同じく、ポート番号9999を使う
  • maintainer ユーザで実行する
  • メモリ不足な感じなので、下記参考資料に倣って java -Xms512m -Xmx512m で起動する

保守用スクリプト

gitbucket-ctrl.sh
#!/bin/bash
# vim: set filetype=sh tabstop=4 softtabstop=2 shiftwidth=2 expandtab cindent:
case $1 in
 status)
    echo === in crontab
    crontab -l | grep --color gitbucket.war
    echo === current process
    pgrep -af gitbucket.war
    echo === systemctl
    systemctl status gitbucket
    ;;
 stop)
    sudo systemctl stop gitbucket
    ;;
 restart)
    sudo systemctl restart gitbucket
    ;;
 start)
    sudo systemctl restart gitbucket
    ;;
 install)
    cd $HOME/install
    [ -f gitbucket-$2 ] || wget https://github.com/gitbucket/gitbucket/releases/download/$2/gitbucket.war -O gitbucket-$2 || exit 1
    ln -f gitbucket-$2 gitbucket.war ;;
  *)
    echo "usage: gitbucket-ctrl.sh [restart|start|stop|status|install VERSION]"
    ;;
esac

参考資料

END

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2