Проблема в том, как вы отформатировали свои UserData.Я бы предложил запустить экземпляр EC2 и вручную протестировать скрипт.В нем есть ряд проблем.
Попробуйте отформатировать свои UserData следующим образом:
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
# FIXME. This won't work either.
# sudo yum update && install pip && pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz
date > /home/ec2-user/starttime
sudo yum update -y aws-cfn-bootstrap
# Initialize CloudFormation bits
/opt/aws/bin/cfn-init -v \
--stack ${AWS::StackName} \
--resource LaunchConfig
# FIXME. Not sure why these are here.
# ACCESS_KEY=${HostKeys}
# SECRET_KEY=${HostKeys.SecretAccessKey}
# Start servers\n
service tomcat8 start
/etc/init.d/httpd start
date > /home/ec2-user/stoptime
На заметку:
- Вы не можете интерполировать здесьиспользуя запись
!Ref
.Обратите внимание, что я изменил его на ${AWS::StackName}
и заметил, что весь блок находится внутри !Sub
. - Как показывают мои комментарии, в строке обновления yum есть недопустимые команды.
- Как отмечено вкомментарии, это плохая практика вводить ключи доступа.Кроме того, кажется, что ключи не требуются для чего-либо в этом сценарии.
Обратите также внимание на то, что раздел файлов указан неверно в метаданных, так как массивы вместо ключей хеш-функции.
должно быть:
files:
/usr/share/tomcat8/webapps/sample.war:
source: https://s3-eu-west-1.amazonaws.com/testbucket/sample.war
mode: '000500'
owner: tomcat
group: tomcat