我刚刚使用chef cookbook安装了java,并为所有用户更新了PATH环境变量(将新文件添加到/etc/profile.d/)。
可以告诉chef重新加载PATH变量吗?
当我这样做的时候:
execute "java_check" do
command "java -version"
end
Is说找不到java。
当我注销,再次登录,然后运行chef recipe时,它工作得很好。
发布于 2013-07-02 14:02:27
我不能100%确定是否可以为将来的chef运行更新PATH变量,但您可以使用execute
节中的environment
属性手动设置它。这也可以在其他资源上使用。请参阅:http://docs.opscode.com/chef/resources.html#execute
在厨师文档中,
environment
A hash of environment variables: {"ENV_VARIABLE"=>"VALUE"}.
(These environment variables must exist for a command to execute successfully.)
Default value: nil.
Run a command which requires an environment variable
execute "slapadd" do
command "slapadd < /tmp/something.ldif"
creates "/var/lib/slapd/uid.bdb"
action :run
environment ({'HOME' => '/home/myhome'})
end
发布于 2013-07-25 15:22:55
我发现不可能以个人方式更新ENV变量(在chef完成后可用),但可以为当前chef run的未来命令更新变量。
ruby_block "set-env-" do
block { ENV[variable_name] = variable_value }
not_if { ENV[variable_name] == variable_value }
end
发布于 2013-06-27 09:32:49
execute "run_updated_bash" do
command "bash /etc/profile.d/myscript.sh"
end
你试过这样的东西吗?它可以在您将文件放入/etc/profile.d/之后运行
https://stackoverflow.com/questions/17313587
复制相似问题