我試圖使用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在內的所有要求預裝,而不是由用戶數據腳本安裝一切,這可能是一個解決方案嗎? 最佳做法是什麼?
任何答覆將不勝感激。感謝您的時間。