2013-05-01 109 views
0

我使用厨师独奏自动化一些在Windows上的配置。我有一个需要通过先前配方间接设置环境的配方的问题(具体地说,我在配方1中安装visual studio,配方2需要在新环境中启动以访问由recipe1设置的变量)。如何在厨师运行期间重新加载环境变量?

据我所知,没有办法告诉厨师'重新加载环境'?什么是实现这一目标的最佳方式?更糟糕的是,如果这样做更容易,我不介意重新启动,只要重新启动和连接配置的主厨完全自动化即可。

+0

有一次,我看到一个解决方案只重启了主菜单(在Linux上),这个菜单在本食谱中提供了新的主机名:https://github.com/franco/chef-hostname – cmur2 2013-05-01 14:23:33

+0

不幸的是,解决方案基于fork语义,我显然不能依赖于这里。 – 2013-05-01 15:18:03

+0

请不要忘记标记答案是正确的! :) – sethvargo 2014-01-01 18:22:25

回答

1

你可能运行一个红宝石块和新的环境变量添加到当前的环境变量:

ruby_block "get new env variables" do 
    block do 
    new_env = `cmd.exe /C set` 
    #do some parsing magic, then set the new_env 
    ENV = parsed_env 
    end 
end 

我没有测试过这一点,但它可以让你在正确的轨道上。