Amazon OpsWorks スタックのシェフのレシピを作成しようとしています。カスタム JSON データをスタックに渡し、PHP の parse_ini_file() コマンドで使用する .ini ファイルをレシピで作成したいと考えています。
私が取り組んでいること
現在、以下を使用してフラットな .ini ファイルを作成できます。
JSON:
{
"settings_ini": {
"quantity": 1,
"width": 10,
"height": 20
}
}
結果の settings.ini ファイルは次のとおりです。
quantity = 1
width = 10
height = 20
シェフのレシピ:
template "/my/path/here/settings.ini" do
owner "www_data"
group "www_data"
mode "0644"
source "settings.ini.erb"
variables({
:settings_ini => node[:settings_ini]
})
end
Chef テンプレート「settings.ini.erb」:
<% @settings_ini.each do |name, value| -%>
<%= name %> = <%= value %>
<% end -%>
私がやろうとしていること
JSON データを次のように変更したいと思います。
{
"settings_ini": {
"quantity": 1,
"attributes": {
"width": 10,
"height": 20
}
}
}
結果の settings.ini ファイルを次のようにします。
quantity = 1
[attributes]
width = 10
height = 20
または、次の場合もあります。
quantity = 1
[attributes]width = 10
[attributes]height = 20
ネストされた JSON データを正しく使用するには、settings.ini.erb テンプレート ファイルを変更するのに助けが必要です。