check-codedeploy check-codedeploy shipper

January 30, 2018 · View on GitHub

#!/bin/bash

check-codedeploy check-codedeploy shipper

chkconfig: 2345 98 02

description: Starts and stops a single check-codedeploy instance on this system

BEGIN INIT INFO

Provides: check-codedeploy

Required-Start: localfslocal_fs network $syslog

Required-Stop: localfslocal_fs network $syslog

Default-Start: 2 3 4 5

Default-Stop: 0 1 6

END INIT INFO

This gives us our custom tags that are applied to each instance

ENVIRONMENT, PRODUCT, ROLE, TEAM

We will use these variables to determine it's application and deployment group it needs to check

. /usr/bin/get-meta . /etc/bashrc

function ensureTagsSet() { echo "----------------------------------------------------------------------------------" echo "" while [[ $PRODUCT == 'template' ]]; do echo "Tags not set yet. Waiting 5 seconds and checking again." sleep 5 . /usr/bin/get-meta . /etc/bashrc done }

function setDeploymentGroup() { echo "" echo "Getting Deployment Group" case ENVIRONMENTinproduction)if[[ENVIRONMENT in production) if [[ ROLE == 'cron' ]] || [[ ROLE==worker]];thenDEPLOYMENTGROUP=productionworkerselseDEPLOYMENTGROUP=productionfi;;uat)DEPLOYMENTGROUP=uat;;staging)DEPLOYMENTGROUP=ROLE == 'worker' ]]; then DEPLOYMENTGROUP=production_workers else DEPLOYMENTGROUP=production fi;; uat) DEPLOYMENTGROUP=uat;; staging) DEPLOYMENTGROUP={PRODUCT}TEAM;;)DEPLOYMENTGROUP={TEAM};; *) DEPLOYMENTGROUP={PRODUCT}TEAM;;esacecho"DeploymentGroupsetto:{TEAM};; esac echo "- Deployment Group set to: DEPLOYMENTGROUP" }

function update-instance() { ensureTagsSet setDeploymentGroup echo ""

echo "- Checking if code has been deployed to this instance"
CREATE_DEPLOYMENT=$(aws deploy create-deployment --application-name $PRODUCT --deployment-group $DEPLOYMENTGROUP --update-outdated-instances-only)
DEPLOYMENT_RESULT=$?
echo ""
echo "- Deploy Command: aws deploy create-deployment --application-name $PRODUCT --deployment-group $DEPLOYMENTGROUP --update-outdated-instances-only"
echo "- Deploy Code: $DEPLOYMENT_RESULT"
echo "----------------------------------------------------------------------------------"
echo ""

}

update-instance 2>&1 | tee /var/log/check-codedeploy.log