server: Properties: AvailabilityZone: us-east-1e ImageId: Ref: Ami InstanceType: Ref: InstanceType KeyName: Ref: KeyName SecurityGroups: - global - Fn::Join: - "-" - - Ref: Environment - Ref: Application - Ref: ServiceSecurityGroup UserData: Fn::Base64: !Sub | # No more Fn::Join needed #!/bin/bash -lexv exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1 FIND_IN_MAP=!FindInMap [ MapName, TopLevelKey, SecondLevelKey ] HOSTNAME_PREFIX=!FindInMap [ EnvironmentMapping, HostnamePrefix, !Ref Environment ] BAR=!Ref DRINK ; MORE=!FindInMap [MapName, TopLevelKey, SecondLevelKey ] BASE64=!Base64 "value to encode" GET_ATT=!GetAtt server.PublicDnsName GET_AZS=!GetAZs us-east-1 JOIN=!Join [ ":", [a, b, c] SELECT=!Select [ "1", [ a, b, c] ] VARTEST=<%= @vartest %> echo !Ref AWS::StackName > /tmp/stack_name # Helper function function error_exit { /usr/local/bin/cfn-signal -e 1 -r "$1" '!Ref WaitHandle' exit 1 } # Wait for the EBS volume to show up while [ ! -e /dev/xvdf ]; do echo Waiting for EBS volume to attach; sleep 1; done /bin/mkdir /media/redis /sbin/mkfs -t ext4 /dev/xvdf echo "/dev/xvdf /media/redis auto defaults 0 0" >> /etc/fstab /bin/mount /media/redis /usr/bin/redis-cli shutdown sleep 10 mv /var/lib/redis/* /media/redis/ rm -r /var/lib/redis ln -s /media/redis /var/lib/redis chown -R redis:redis /var/lib/redis chown -R redis:redis /media/redis /usr/bin/redis-server # If all is well so signal success /usr/local/bin/cfn-signal -e $? -r "Ready to rock" '!Ref WaitHandle' cat /proc/uptime | cut -f1 -d'.' > /tmp/time-to-boot Type: AWS::EC2::Instance