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タグを元に判断する」