GitBucketのバージョンアップ用のスクリプト(作業用)
便利なGitBucketは重宝しているけど、リビジョンアップが現在のところほぼ月一なので、そのたびの入れ替え作業が面倒になってきた。
GitBucketは簡単に環境構築できる。それなりに本格的に運用しようとすると、入れ替えの際の古い媒体のバックアップなど作業したりする。
バックアップの他、媒体のダウンロードすら面倒になってきたので、今回、スクリプトを作ったのが大きな要因かも。
まあ、Tomcatの場合、「Tomcat Manger」使えば、画面からwarの入れ替えができるけど、SIという意味も込めてshellでやってみる。
Shellの内容(gitbucket_update.sh)
前提として、下記の環境変数が必要。
- CATALINA_HOME:例)/usr/local/tomcat
- GITBUCKET_HOME:例) /mnt/share/net/gitbucket
あと、Tomcat用の起動スクリプトを「/etc/init.d/tomcat」に配置する必要がある。
簡単な流れは次の通り。
#!/bin/sh # gitbucket_update.sh # Update GibBucket script with Tomcat # # 環境によって変更する BACKUP_DIR=/mnt/share/public WORK_DIR=/usr/tmp/ ## --- check environment if [ "$GITBUCKET_HOME" = "" ]; then echo "error!! not found env GITBUCKET_HOME" exit fi if [ "$CATALINA_HOME" = "" ]; then echo "error!! not found env CATALINA_HOME" exit fi echo -n "新しいバージョンのGitBucketを入力してください(例. 1.5) > " read NEW_VERSION if [ "$NEW_VERSION" = "" ]; then echo "バージョンが入力されていません。処理を中止します。" exit fi CURRENT_VERSION=`cat $GITBUCKET_HOME/version` if [ "$CURRENT_VERSION" = "$NEW_VERSION" ]; then echo "現在のバージョンと同じであるため、処理を中止します。" exit fi echo "新しいバージョンの媒体を取得します。" cd $WORK_DIR /bin/rm -f gitbucket.war wget -O gitbucket.war https://github.com/takezoe/gitbucket/releases/download/${NEW_VERSION}/gitbucket.war if [ $? -ne 0 ]; then echo "新しいバージョンをダウンロードするのに失敗しました。" exit fi if [ ! -f gitbucket.war ]; then echo "新しいバージョンの媒体が存在しません。" exit fi echo -n "GitBucketのバージョンアップ( ${CURRENT_VERSION} -> $NEW_VERSION )を実行しますか?(yes|no) > " read CONFIRM_DO case "$CONFIRM_DO" in "Y" | "y" | "yes" | "Yes" | "YES" ) echo "... GitBucketのバージョンアップを開始します。" ;; * ) echo "... GitBucketのバージョンアップを中止します。" exit ;; esac echo "... stop tomcat" /etc/init.d/tomcat stop if [ -d $CATALINA_HOME/webapps/gitbucket ]; then echo "古い媒体をバックアップします。" cd ${CATALINA_HOME}/webapps/ tar zcf gitbucket-${CURRENT_VERSION}.tgz gitbucket mv gitbucket-${CURRENT_VERSION}.tgz ${BACKUP_DIR} echo "古いバージョンのバックアップ >> $BACKUP_DIR/gitbucket-${CURRENT_VERSION}.tgz" fi echo "媒体を入れ替えます" /bin/rm -f $CATALINA_HOME/webapps/gitbucket.war /bin/rm -rf $CATALINA_HOME/webapps/gitbucket /bin/rm -rf $CATALINA_HOME/work/Catalina/localhost/gitbucket/* cp $WORK_DIR/gitbucket.war $CATALINA_HOME/webapps/ echo "... start tomcat" /etc/init.d/tomcat start exit