我试图使用CodeDeploy与我的Auto Scaling Group集成。AWS:生命周期脚本的顺序?
我对自动缩放组配置有用户数据脚本安装PHP等而对于CodeDeploy我AfterInstall钩脚本运行一个简单的PHP文件。
用户数据(这工作正常)
#!/bin/bash
apt-get -y update
apt-get -y install ruby
apt-get -y install wget
cd /home/ubuntu
wget https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/install
chmod +x ./install
./install auto
sudo apt-get install -y python-software-properties
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update -y
sudo apt-get install php7.1 -y
sudo apt-get install php7.1-zip php7.1-mbstring php7.1-dom php7.1-curl -y
sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php
sudo php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
我创建了一个自动缩放集团与此配置,但实例失败,错误,PHP是一个未知的命令来启动。我对此有几点疑问。
我想这是因为代码部署的AfterInstall钩开始我的用户数据脚本完成安装PHP之前执行。我对么?
如果我纠正,我怎么修复的顺序?
构建AMI在内的所有要求预装,而不是由用户数据脚本安装一切,这可能是一个解决方案吗? 最佳做法是什么?
任何答复将不胜感激。感谢您的时间。