AWS opsworks 建構生命週期和 amazon linux
我最近一直在使用 Opsworks,它通過 GIT 集成在我的伺服器資產中部署應用程序給我留下了深刻的印象。但是我有一個使用 PHP 5.4 的外部庫的要求 > Amazon Linux 產品已安裝 PHP5.3。現在我創建了一個基於 Amazon Linux 的單獨的 ec2 實例併升級了 PHP 版本,我實際上使用自定義使用者數據來完成這個。然後我將其保存為自定義 AMI。當我將其設置為 AMI 以在 opsworks 中用於實例時,啟動伺服器時會出現錯誤,這些錯誤是由 Apache 的衝突版本等引起的。所以看起來我的 AMI 幾乎被忽略了,或者它建構了我的 AMI 並使用了自定義數據,然後嘗試執行 CHEF 食譜。然後我相信這實際上可能是廚師食譜未能安裝他們需要的東西,因此出現錯誤。
我已經嘗試對預設使用 PHP 5.5 的 Ubuntu AMI 做同樣的事情,但我在嘗試為我的應用程序目錄啟用 mod_rewrite 時遇到了單獨的問題。雖然我正在嘗試解決這個問題以及解決我的 Amazon Linux AMI 問題
所以我的問題是,廚師食譜是否在我的 user_data 之後執行?或者我理論上是否能夠解除安裝 Chef 將在我的自定義 user_data 中安裝的所有內容,然後安裝我的實際依賴項?我目前對 Chef 還不夠熟悉,無法嘗試編輯預設的 PHP-APP-Server 配方來做我需要的事情(我也不確定我需要從 AWS GitHub 儲存庫中獲得什麼來做到這一點)
或者有人有更好的想法嗎?
我相信 PHP 5.5 現在作為 php55 在 AL repos 中可用。
您可以在此處通過您的廚師食譜覆蓋 PHP 包:https ://github.com/aws/opsworks-cookbooks/blob/release-chef-11.4/mod_php5_apache2/attributes/default.rb#L19
您可以使用自定義 JSON 或使用屬性文件覆蓋它:http: //docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-installingcustom-components-attributes.html
不過,您很可能需要先添加自定義配方以刪除舊版本的 php,例如:在 Amazon Linux 上使用 yum 更新 PHP