Привет я использую шеф-повар для автоматизации развертывания сайта WordPress, где мне нужно прочитать database
, host
, username
а также password
от моего shared.yml
за wp-config.php
поэтому я пытаюсь ниже код в моем файле шаблона
<?php
define('DB_NAME', '"<%= @database %>"');
define('DB_USER', '"<%= @username %>"');
define('DB_PASSWORD', '"<%= @password %>"');
define('DB_HOST', '"<% @host %>"');
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
?>
однако интерполяция не происходит там, где она должна принимать фактические значения, которые определены в _shared.yml
, Мои атрибуты в шеф-повар выглядит так, как показано ниже.
default[:example_wp][:database][:host] = ""default[:example_wp][:database][:adapter] = "mysql2"default[:example_wp][:database][:database] = "wordpress"default[:example_wp][:database][:username] = "wordpress"default[:example_wp][:database][:password] = ""
Может ли кто-нибудь помочь с интерполяцией, что я пытаюсь.
Благодарю.
Итак, несколько проблем, во-первых, вам нужно убедиться, что вы передаете атрибуты в ресурс шаблона:
template '/whatever/wp-config.php' do
# Other stuff here ...
variables node[:example_wp][:database].to_hash
end
Во-вторых, как указано в комментариях, вы, вероятно, не хотите, чтобы в шаблоне были дополнительные двойные кавычки, иначе отображаемое значение будет выглядеть так: '"wordpress"'
,
В-третьих, я не уверен, что вы подразумеваете под shared.yml
частично, это атрибуты узла или вы пытаетесь прочитать их из локального файла, и если последний, то откуда этот файл?
Других решений пока нет …