LoginSignup
0
0

More than 3 years have passed since last update.

猿が管理するElastic BeanStalk

Posted at

猿が管理する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)とかは増減させるなり外部ファイル化しておけば幸せ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0