share facebook facebook2 twitter menu hatena pocket slack

2014.11.27 THU

rsyncするインスタンスをAmazon EC2のNameタグを元に判断する

田村 謙介

WRITTEN BY田村 謙介

こんにちは、cloudpack田村です。

5分で作ったスクリプトのメモ

  • 管理サーバから実行することを想定
  • (Amazon EC2インスタンスのNameタグ)は「prd-web」等を想定
  • IAMrole使用
  • jq使用
  • 並列実行風
#!/bin/bash
################
# Sync2DocRoot #
################

SYNCHOST=(`aws ec2 describe-instances --filters Name=tag-value,Values="(EC2インスタンスのNameタグ)*" | jq '.Reservations[].Instances[]|{PrivateIpAddress}' | grep "PrivateIpAddress" | awk '{print $NF}' | sed -e "s/"//g"`)

SRCDIR="(DocumentRootに配置するコンテンツのあるディレクトリ)"
DSTDIR="(WebサーバのDocumentRoot)"
#USER="root"

for ((i=0; i<${#SYNCHOST[*]}; i++))
do
  rsync -avc --delete -e 'ssh -c arcfour256 -o StrictHostKeyChecking=no' ${SRCDIR} ${USER}@${SYNCHOST[$i]}:${DSTDIR} &
done
wait

exit 0

参考

元記事はこちらです。
rsyncするインスタンスをAWS EC2のNameタグを元に判断する

田村 謙介

田村 謙介

構築運用(虎)セクションのリーダー/ソリューションアーキテクトとして、コンサルティング・設計・構築を主に担当しています。 使用するプロダクトやサービスの思想を尊重しつつお客様の要望に応えられる「美しい設計」を日々追い求めています。