Недавно я использую Opsworks, и меня очень впечатлила интеграция GIT для развертывания приложений на моем сервере. Но у меня есть требование из-за внешней библиотеки использовать PHP 5.4> В предложении Amazon Linux установлен PHP5.3. Теперь я создал отдельный экземпляр ec2 на базе Amazon Linux и обновил версию PHP, для этого я фактически использовал пользовательские данные. Затем я сохранил это как пользовательский AMI. Когда я устанавливаю его как AMI для использования в opsworks для экземпляра, возникают ошибки при запуске сервера, которые возникают из-за конфликтующих версий Apache и т. Д. Таким образом, похоже, что мой AMI был почти проигнорирован или что он построил мой AMI и использовал пользовательский data, а затем пытается запустить рецепты CHEF. Тогда я полагаю, что на самом деле рецепты Chef могут не установить то, что им нужно, поэтому возникает ошибка.
Я пробовал сделать то же самое с Ubuntu AMI, который по умолчанию использует PHP 5.5, но у меня есть отдельные проблемы с попыткой включить mod_rewrite для моего каталога приложений здесь. Хотя я пытаюсь справиться с этим, а также над решением моей проблемы с AMI Amazon Linux.
Итак, мой вопрос: запускаются ли рецепты Chef после моих user_data? Или я теоретически смогу удалить все, что Chef установит в мои пользовательские данные user_data, а затем мои фактические зависимости будут установлены после? На данный момент я недостаточно знаком с Chef, чтобы попытаться отредактировать рецепт PHP-APP-Server по умолчанию, чтобы сделать то, что мне нужно (я также не уверен, что мне нужно из репозитория AWS GitHub для этого)
Или у кого-нибудь есть идеи получше?
Насколько я понимаю, вам нужно изменить свой рецепт шеф-повара (то есть немного научиться шеф-повару), чтобы изменить установленную версию PHP. В противном случае вы продолжите сталкиваться с проблемами, и даже если вы установите другую версию PHP, шеф-повар автоматически попытается отменить ее, поскольку это то, что он должен делать.
Я считаю, что PHP 5.5 теперь доступен в репозиториях AL как php55.
Вы можете переопределить пакеты 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, например здесь: Обновите PHP с помощью yum в Amazon Linux