2016-04-26 15 views
0

テンプレートリソースパスに以下のようにユーザー定義変数を使用しようとしています。しかし、シェフでユーザー定義の環境変数を取得する方法がわかりません。助けてください。シェフでユーザー定義の環境変数を使用する方法

template "#{user_env_variable}/sys/test.xml" do 
    source "test.xml.erb" 
    owner user1 
    group user1 
    mode '0644' 
end 

user_env_variable.bashrcでユーザー定義の環境変数です。

答えて

0

ルビの環境変数には、ENV、たとえばENV['PATH']を使用してアクセスできます。あなたのコードに変換、これは次のようになります。

template "#{ENV['user_env_variable']}/sys/test.xml" do 
    source "test.xml.erb" 
    owner user1 
    group user1 
    mode '0644' 
end 

が警告さ:私は悪い習慣これをやって検討します。 chef-clientがシステムサービスとして実行される場合、または環境変数が定義されていない場合はどうなりますか?おそらく、(あなたがそれを知っていれば)あなたの目標に到達するよりきれいな方法があるでしょう。

関連する問題