タイトル

Need for Answer

2014年11月25日火曜日

複数台のサーバーでconfigを同期するだけのスクリプト

複数台のサーバーでconfigを同期する必要…有りますよね!
copyしてからサービスの再起動とかよくやると思うんですよ!

いっつも適当に書くので、メモすることにしました。
とりあえずnginxでやってますが、td-agentとかでもやり方は一緒です。

#!/bin/sh
#==========================================
# Enviroment
#==========================================
# 設定ファイルを送信する先
DEPLOY_SERVER="10.10.xxx.xxx"

# 設定ファイルの入っているディレクトリ
SYNC_DIR="/etc/nginx"

# 設定ファイル編集後に実行するコマンド
RELOAD_CMD="/etc/init.d/nginx reload"

#==========================================
# Config Deploy
#==========================================
# 実行時間計測用
START=`date +%s`

echo "-------------------------------------"
echo " Erase Remote Config Files..."
echo "-------------------------------------"
ssh ${DEPLOY_SERVER} rm -fr ${SYNC_DIR}
ssh ${DEPLOY_SERVER} mkdir ${SYNC_DIR}

echo "-------------------------------------"
echo " Deploy Config Files..."
echo "-------------------------------------"
scp -p -r ${SYNC_DIR}/* root@${DEPLOY_SERVER}:${SYNC_DIR}

echo "-------------------------------------"
echo " Service Reload (Remote)..."
echo "-------------------------------------"
ssh ${DEPLOY_SERVER} ${RELOAD_CMD}

echo "-------------------------------------"
echo " Service Reload (Local)..."
echo "-------------------------------------"
${RELOAD_CMD}

# 実行時間計測用
END=`date +%s`
SS=`expr ${END} - ${START}`
HH=`expr ${SS} / 3600`
SS=`expr ${SS} % 3600`
MM=`expr ${SS} / 60`
SS=`expr ${SS} % 60`

echo "-------------------------------------"
echo " F I N I S H ! !"
echo "-------------------------------------"
echo " Exec Time => ${HH}:${MM}:${SS}"
echo "-------------------------------------"

0 件のコメント:

コメントを投稿