Назад | Перейти на главную страницу

Как перегрузить package_name в поваренной книге Chef с помощью пользовательского JSON AWS?

Я никогда раньше не работал с Chef и OpsWorks. Что я делаю, я пытаюсь перезаписать конфигурацию Chef, чтобы использовать современный PHP 5.6.

Я написал JSON для Layer PHP App Server

{ "mod_php5_apache2": { "packages": ["php56-xml", "php56-common", "php56-gd", "php56-bcmath", "php56-mysqlnd", "php56-pecl-memcache"], "version": "2.4" } , "php-mysql" : {"package_name" :"php56-mysqlnd" } }

И он начал установку новой версии PHP и пакетов. Но у меня проблема с php-mysql. Я нашел этот файл: https://github.com/aws/opsworks-cookbooks/blob/release-chef-11.4/mod_php5_apache2/recipes/mysql_adapter.rb Как я понял, он предоставляет имя пакета php-mysql, поэтому я попытался перегрузить его в JSON, и это не сработало. Когда я развертываю уровень (настройку), он не работает из-за конфликта пакетов:


[2016-05-18T20:28:25+00:00] INFO: Processing package[php56-mysqlnd] action install (mod_php5_apache2::default line 4)
[2016-05-18T20:28:25+00:00] DEBUG: package[php56-mysqlnd] checking yum info for php56-mysqlnd
[2016-05-18T20:28:25+00:00] DEBUG: package[php56-mysqlnd] installed version: (none) candidate version: 5.6.21-1.124.amzn1
[2016-05-18T20:28:25+00:00] INFO: package[php56-mysqlnd] installing php56-mysqlnd-5.6.21-1.124.amzn1 from amzn-updates repository
[2016-05-18T20:28:25+00:00] DEBUG: Executing yum -d0 -e0 -y install php56-mysqlnd-5.6.21-1.124.amzn1
[2016-05-18T20:28:28+00:00] DEBUG: ---- Begin output of yum -d0 -e0 -y install php56-mysqlnd-5.6.21-1.124.amzn1 ----
[2016-05-18T20:28:28+00:00] DEBUG: STDOUT: 
[2016-05-18T20:28:28+00:00] DEBUG: STDERR: 
[2016-05-18T20:28:28+00:00] DEBUG: ---- End output of yum -d0 -e0 -y install php56-mysqlnd-5.6.21-1.124.amzn1 ----
[2016-05-18T20:28:28+00:00] DEBUG: Ran yum -d0 -e0 -y install php56-mysqlnd-5.6.21-1.124.amzn1 returned 0
[2016-05-18T20:28:28+00:00] INFO: Processing package[php56-pecl-memcache] action install (mod_php5_apache2::default line 4)
[2016-05-18T20:28:28+00:00] WARN: Problem parsing line 'Plugin "replace" can't be imported' from yum-dump.py! Please check your yum configuration.
[2016-05-18T20:28:28+00:00] DEBUG: package[php56-pecl-memcache] checking yum info for php56-pecl-memcache
[2016-05-18T20:28:28+00:00] DEBUG: package[php56-pecl-memcache] installed version: 3.0.8-6.17.amzn1 candidate version: 3.0.8-6.17.amzn1
[2016-05-18T20:28:28+00:00] DEBUG: package[php56-pecl-memcache] is already installed - nothing to do
[2016-05-18T20:28:28+00:00] INFO: Processing package[php-mysql] action install (mod_php5_apache2::mysql_adapter line 1)
[2016-05-18T20:28:28+00:00] DEBUG: package[php-mysql] checking yum info for php-mysql
[2016-05-18T20:28:28+00:00] DEBUG: package[php-mysql] installed version: (none) candidate version: 5.3.29-1.8.amzn1
[2016-05-18T20:28:28+00:00] INFO: package[php-mysql] installing php-mysql-5.3.29-1.8.amzn1 from amzn-main repository
[2016-05-18T20:28:28+00:00] DEBUG: Executing yum -d0 -e0 -y install php-mysql-5.3.29-1.8.amzn1
[2016-05-18T20:28:30+00:00] DEBUG: ---- Begin output of yum -d0 -e0 -y install php-mysql-5.3.29-1.8.amzn1 ----
[2016-05-18T20:28:30+00:00] DEBUG: STDOUT:  You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
[2016-05-18T20:28:30+00:00] DEBUG: STDERR: Error: php56-pdo conflicts with php-pdo-5.3.29-1.8.amzn1.x86_64
Error: php-mysql conflicts with php56-mysqlnd-5.6.21-1.124.amzn1.x86_64
Error: php56-common conflicts with php-common-5.3.29-1.8.amzn1.x86_64
[2016-05-18T20:28:30+00:00] DEBUG: ---- End output of yum -d0 -e0 -y install php-mysql-5.3.29-1.8.amzn1 ----
[2016-05-18T20:28:30+00:00] DEBUG: Ran yum -d0 -e0 -y install php-mysql-5.3.29-1.8.amzn1 returned 1

================================================================================
Error executing action `install` on resource 'package[php-mysql]'
================================================================================


Chef::Exceptions::Exec
----------------------
returned 1, expected 0
---- Begin output of  ----
STDOUT:  You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigestSTDERR: Error: php56-pdo conflicts with php-pdo-5.3.29-1.8.amzn1.x86_64
Error: php-mysql conflicts with php56-mysqlnd-5.6.21-1.124.amzn1.x86_64
Error: php56-common conflicts with php-common-5.3.29-1.8.amzn1.x86_64
---- End output of  ----



Resource Declaration:
---------------------
# In /opt/aws/opsworks/releases/20160503163349_2426-20160503163349/cookbooks/mod_php5_apache2/recipes/mysql_adapter.rb

1: package 'php-mysql' do
2:   package_name value_for_platform_family(
3:     'rhel' => 'php-mysql',
4:     'debian' => 'php5-mysql'
5:   )
6: end



Compiled Resource:
------------------
# Declared in /opt/aws/opsworks/releases/20160503163349_2426-20160503163349/cookbooks/mod_php5_apache2/recipes/mysql_adapter.rb:1:in `from_file'

package("php-mysql") do
retry_delay 2
version "5.3.29-1.8.amzn1"
retries 0
cookbook_name :mod_php5_apache2
recipe_name "mysql_adapter"
action :install
package_name "php-mysql"
end

Есть ли способ перегрузить эти устаревшие пакеты?