2017-10-30 17 views
0

私はシステムからUbuntuの環境変数を利用するために探していますシェフのレシピを持っています。しかし、同じマシンからEG echo $AWS_ACCESS_IDを実行すると、期待通りの結果が返されます。シェフレシピ使用Ubuntuの環境変数は

私はこのシェフのレシピでルビーENVの構文を使用すると何か問題がありますか?またはENVの範囲が必要な特性を持たない別の理由はありますか?

+0

あなたがIRB行うと確認することができます 'ENV'値:

AWSは、レシピaws_opsworks_app経由シェフとopsworksを経由して管理対象マシンの環境変数へのインタフェースを提供していますか? – AnkitG

+0

はい、値はirb – cars

答えて

1

あなたはchef-clientの環境からのものを得ることを意味するので、ENVを直接使用しています。 chef-clientは一般にSSH(シェルなし)またはサービス(やはりシェルなし)で直接実行されるので、すべてのシェル初期化ファイルはロードされません。 Unixには、「グローバル環境変数」や「システム環境変数」という概念はありません。代わりに何らかの種類の設定ファイルを使用したい(または必要とする)でしょう。

+0

hmですが、シェフのレシピbashコマンドがレシピに定義された 'user'として実行されていることが分かりました。これは環境スコープが必要でした。 – cars

+0

Bashは含まれていません。あなたは 'ENV'と文字列補間を使用しています。これはレシピがコンパイルされたときにchef-clientによって評価されます。 – coderanger