puppetを使用していくつかの環境変数を設定するための最良の方法を見つけようとしています。
execを使用して実行できますexport VAR=blah
。ただし、それは現在のセッションでのみ持続します。また、bashrcなどのファイルの最後に追加することも考えました。ただし、すべての準備が整っているかどうかを確認するための信頼できる方法はないと思います。そのため、パペットを実行するたびに追加されることになります。
puppetを使用していくつかの環境変数を設定するための最良の方法を見つけようとしています。
execを使用して実行できますexport VAR=blah
。ただし、それは現在のセッションでのみ持続します。また、bashrcなどのファイルの最後に追加することも考えました。ただし、すべての準備が整っているかどうかを確認するための信頼できる方法はないと思います。そのため、パペットを実行するたびに追加されることになります。
この関連する質問を見てみましょう。
*.sh
のスクリプトは/etc/profile.d
ユーザーログイン時に読み込まれます (投稿にあるように、同時に/etc/profile
ソースが読み込まれます)
export
したがって、配置されたスクリプト内の変数/etc/profile.d
は、ユーザーが使用できるようになります。
その後、file
リソースを使用して、このアクションがべき等であることを確認できます。例えば:
file { "/etc/profile.d/my_test.sh":
content => 'export MYVAR="123"'
}
または、非べき結果への代替手段:
例
if [[ ! grep PINTO_HOME /root/.bashrc | wc -l > 0 ]] ; then
echo "export PINTO_HOME=/opt/local/pinto" >> /root/.bashrc ;
fi
このオプションを使用すると、pinto アプリケーションの存在によって警告が発生する場合
.bash_profile
に、どのアプリケーションがボックスに配置される可能性があるかに関係なく、ユーザーのアプリケーションを構成する必要がない場合に、この環境変数を設定できます。
それをbashrcに追加すると、次のようにしてENVハッシュにあることを確認できます
ENV[VAR]
どちらが返されます=>「何とか」