0

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 テンプレート ファイルを変更するのに助けが必要です。

4

2 に答える 2