2017-06-04 8 views
0

私はデータバッグにそれらをすべてインストールするために追加するのが良いパッケージのグループを持っています。パッケージリソースをデータバッグで使用することは可能ですか?シェフのパッケージリソースがデータバッグを受け入れることはできますか?

EDIT:例えば - これは私がチョコレートのようリソースでそれをやっている方法です:

workstation_apps = data_bag_item('winapps','desktop_apps') 

chocolatey_package workstation_apps['apps'] 

これは、データバッグ構造である:

{ 
    "id": "desktop_apps", 
    "apps": [ 
    "slack", 
    "putty", 
    "jre8", 
    "python2", 
    "ruby", 
    "chefdk", 
    "vmwarevsphereclient", 
    "vmwareworkstation", 
    "vagrant", 
    "terraform", 
    "packer", 
    "visualstudiocode", 
    "pushbullet", 
] 
} 

これは "chocolatey" と連携resource - しかしそれはlinux(yum)の標準パッケージリソースで動作しますか?

+0

少なくとも、この問題がある限りコードを追加してください。 – StephenKing

答えて

0

はい、可能です - すべてのコードです。

データバッグからそのような情報を抽出し、リストとしてパッケージ名のリストをpackageリソースに渡すことができます。

+0

Ok - 動作する同様の状況のた​​めに自分のコードを追加しました。これはパッケージで動作しますか? – TyMac

+0

はい、確かに、これもうまくいくでしょう。確かに、何がより効率的か - ここに投稿するか、試してみてください。それとも、ここに特別な挑戦がありますか? – StephenKing

+0

優秀 - ありがとう!私は今すぐ試すことができる場所ではありません:)他の唯一の課題は、パッケージのバージョンを指定する必要があることです。そのデータバッグの構造がどのように見えるかは不明です。 – TyMac

0

あなたは本当にあなたがdata_bagから引き出した配列を渡している "データバッグ"をパッケージのリソースに渡していません。パッケージプロバイダは、使用しているdata_bagについて何も知らない。

あなたがやっていることは、chocolatey_package [ "slack", "putty" .... ]と変わりありません。あなたはそれをバージョンの同じ長さの配列を渡す必要があるバージョン行うには:

package [ "slack", "putty", "jre8" ] do 
    version [ nil, "1.2.3", nil ] 
end 

をあなたはおそらくdatabagにおけるハッシュでname, versionペアとしてそれを保存して、配列としてキーと値を抽出する必要があります。パッケージプロバイダに提供する。

関連する問題