猿が管理するElastic BeanStalk
ぶっちゃけブラウザ上で一回書いててBackSpace押したら記事が全部消えてやる気が無くなる病が発生中
なんで加筆するけどこんなんをとりあえずはっつけておく
前提
- ElasticBeanStalk上で複数のApplicationを管理している
- また、その環境内に複数Environmentセットを運用している
- 運用しているEnvironmentは下記の通り
- DEVELOP : DEV :: x-dev-stage-[XXX] という名称のApplication
- DEMO : DEMO :: stage-[XXX] という名称のApplication
- STAGING : STG :: stage-[XXX] という名称のApplication
- PRODUCTION : PROD :: stage-[XXX] という名称のApplication
作文例
#!/bin/bash
base_dir="/home/<fuge>/Components"
case "${1}" in
"prod" | "production" |"PROD" )
STAGE="PROD" ;;
"demo" | "DEMO" )
STAGE="DEMO" ;;
"stg" | "STG" | "staging" )
STAGE="STG" ;;
"dev" | "DEV" )
STAGE="DEV" ;;
"" )
PS3="What Enviroment do you deploy? >"
echo ${PS3}
ans1="production"
ans2="demo"
ans3="staging"
ans4="develop"
select ANS in "$ans1" "$ans2" "$ans3" "$ans4"
do
if [ -z "$ANS" ]; then
continue
else
break
fi
done
if [ ${REPLY} == "1" ];then
STAGE="PROD"
elif [ ${REPLY} == "2" ];then
STAGE="DEMO"
elif [ ${REPLY} == "3" ];then
STAGE="STG"
elif [ ${REPLY} == "4" ];then
STAGE="DEV"
fi
echo You selected $REPLY\) $ANS ;;
esac
if [ $STAGE = "DEV" ]; then
app_ary=( x-dev-stage-1 x-dev-stage-2 x-dev-stage-3 x-dev-stage-4 x-stage-n )
elif [ $STAGE = "STG" -o $STAGE = "DEMO" -o $STAGE = "PROD" ]; then
app_ary=( stage-1 stage-2 stage-3 stage-4 stage-5 )
fi
declare -a env_ary=()
if [ $STAGE = "DEV" -o $STAGE = "STG" ]; then
all_env=( \
ENV_1='なんか値_A1' \
ENV_2='なんか値_A2' \
ENV_3='なんか値_A3' \
ENV_4='なんか値_A4' \
ENV_5='なんか値_A5' \
)
elif [ $STAGE = "DEMO" -o $STAGE = "PROD" ]; then
all_env=( \
ENV_1='なんか値_B1' \
ENV_2='なんか値_B2' \
ENV_3='なんか値_B3' \
ENV_4='なんか値_B4' \
ENV_5='なんか値_B5' \
)
fi
for ((i = 0; i < ${#app_ary[@]}; i++)) {
echo "### Start start ENV VALUE ###"
cd ${base_dir}/${app_ary[$i]}
pwd
if [ $STAGE = "STG" -o $STAGE = "DEMO" -o $STAGE = "PROD" ]; then
TARGET_NAME=`eb list | grep ${STAGE}-`
TARGET_NAME=${TARGET_NAME#\*}
ENV_OPTION="-e ${TARGET_NAME}"
else
TARGET_NAME=""
ENV_OPTION=""
fi
echo "eb setenv ${all_env[@]} ${TARGET_NAME}"
eb setenv ${all_env[@]} ${ENV_OPTION}
cd -
echo "#### Finish !! ###"
}
これで複数のapplication環境 またその環境内に含まれる複数のEnvironmentに対して一気に環境変数をセットできる
環境変数部分(なんか値_XX)とかは増減させるなり外部ファイル化しておけば幸せ