Skip to content

Instantly share code, notes, and snippets.

@feniix
Created January 23, 2015 00:02
Show Gist options
  • Save feniix/8fddab8ff22c6b9c3cc8 to your computer and use it in GitHub Desktop.
Save feniix/8fddab8ff22c6b9c3cc8 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash -e
AWSCLI=$(command -v aws)
AWS_CMD="${AWSCLI} --profile confsol"
BASE_NAME="grails"
BUILD_SUFFIX="${GIT_COMMIT}-${BUILD_NUMBER}"
DATESTAMP=$(date +%m%d%Y)
RESOURCE_NAME="${BASE_NAME}-${ENV}-${DATESTAMP}-${BUILD_SUFFIX}"
get_ami() {
${AWS_CMD} ec2 describe-images --region us-east-1 --owners self --output text | grep redparrot-grails-jenkins-packer-${BUILD_SUFFIX} | awk '{ print $5}'
}
AMI_ID=$(get_ami)
setup_userdata() {
# TODO: we do this logic about environments later
# if [ ${ENV} -eq "QA" ]; then
# sed -i 's/REP_ENV/qa' ${USERDATA_FILE}
# fi
sed -i "s/REP_ENC_PASS/${ENC_PASS}" ${USERDATA_FILE}
}
create_lc() {
${AWS_CMD} autoscaling create-launch-configuration \
--launch-configuration-name "${RESOURCE_NAME}" \
--image-id "${AMI_ID}" \
--instance-type "${INST_TYPE}" \
--security-groups "sg-f16b5794" \
--user-data ${USERDATA_FILE}
}
create_asg() {
${AWS_CMD} autoscaling create-auto-scaling-group \
--auto-scaling-group-name "${RESOURCE_NAME}" \
--launch-configuration-name "${RESOURCE_NAME}" \
--min-size 1 \
--max-size 1 \
--load-balancer-names "webapp-internal-qa" \
--health-check-type "ELB" \
--vpc-zone-identifier "subnet=9e8f95b6"
}
echo "setting up user-data file"
setup_userdata
echo "creating launch configuration with resource name ${RESOURCE_NAME}"
create_lc
echo "creating asg with resource name ${RESOURCE_NAME}"
create_asg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment