Improve this page

Back to AWS Terraform templates index <–

AWS Account

Contains Terraform files which creates W01, W02, W03 VPC (incl Subnets, Security Groups, IGW, NAT etc) under Workspace Account for Testing, Acceptance and Production AWS account

Template Locations

Online documentation

Template reference
Service description

provision.sh

#!/bin/sh

set -e

export PATH=$PATH:`pwd`
action=$1
APP_ENV=$2

if [ -z $APP_ENV ]
then
  echo "Execute as ./provision.sh <environment_name>"
  exit 1
fi

case $APP_ENV in
prod)
  export AWS_REGION=eu-west-1
  export ACCOUNT_ID=
  ;;
acc)
  export AWS_REGION=eu-west-1
  export ACCOUNT_ID=
  ;;
test)
  export AWS_REGION=eu-west-1 
  export ACCOUNT_ID=
  ;;
*)
  export AWS_REGION=eu-west-1
  export ACCOUNT_ID=
  ;;
esac

echo ">>> Configuring for account $ACCOUNT_ID"

echo ">>> Configuring for terraform state file $APP_ENV  $"

echo ">>> Configuring for AWS Region $AWS_REGION $"

find . -name 'config.tf' -type f -exec sed -i -e "s/ACCOUNT_ID/$ACCOUNT_ID/g" -e "s/APP_ENV/$APP_ENV/g" -e "s/AWS_REGION/$AWS_REGION/g"  {} \;

echo ">>> Running $action for account $ACCOUNT_ID"

rm -rf .terraform

echo "Fetching Terraform Modules"

#terraform get

terraform init  

#terraform plan -var-file="config/$APP_ENV.tfvars"

#terraform $action -target=module.bastion -var-file="config/$APP_ENV.tfvars"
#terraform $action -target=module.elastic_search_server -var-file="config/$APP_ENV.tfvars"

#file="config/$APP_ENV.tfvars"
if [ $action = "apply" ]
then
terraform $action -input=false -auto-approve -var-file="config/$APP_ENV.tfvars"
elif [ $action = "plan" ]
then
terraform $action -var-file="config/$APP_ENV.tfvars"
elif [ $action = "destroy" ]
then
terraform $action -input=false -auto-approve -var-file="config/$APP_ENV.tfvars"
fi

find . -name 'config.tf' -type f -exec sed -i -e "s/$ACCOUNT_ID/ACCOUNT_ID/g" -e "s/$APP_ENV/APP_ENV/g" -e "s/$AWS_REGION/AWS_REGION/g"  {} \;