Created
July 12, 2016 16:17
-
-
Save ameir/0a911d99afb672a3b0519f344c607d8a to your computer and use it in GitHub Desktop.
Run chef-client with AWS tags
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -ex | |
export HOME=/root | |
INSTANCE_ID=$(curl -s http://instance-data/latest/meta-data/instance-id) | |
REGION=$(curl -s http://instance-data/latest/meta-data/placement/availability-zone | sed 's/.$//') | |
mkdir -vp /tmp/chef ; cd $_ | |
aws ec2 --region $REGION describe-tags --filters "Name=resource-id,Values=$INSTANCE_ID" --output=text | awk -F '\t' -v q=\' '{gsub(/:/,"_",$2); print "TAG_" $2 "=" q$5q}' > instance-tags | |
. instance-tags | |
eval $TAG_chef_init | |
aws s3 cp $s metadata | |
. metadata | |
TARBALL=${COOKBOOK_NAME}-${COOKBOOK_VERSION}.tar.gz | |
aws s3 cp $COOKBOOK_S3_URL . | |
tar xfz $TARBALL | |
LOG_PATH="/var/tmp/chef_bootstrap_`date -u +'%F_%H%M'`.log" | |
LOG_EMAIL=$TAG_Owner | |
cmd="chef-client -z -r '$r' -E '$e' -l info -L $LOG_PATH" | |
echo "Running: $cmd" | |
eval $cmd; return_code=$? | |
if [[ $return_code -eq 1 ]]; then | |
tail -n +1 instance-tags $LOG_PATH | mail -s "(Failed) Chef run for $(hostname -f)" -- $LOG_EMAIL | |
fi | |
exit $return_code |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment