如何使用Use Chef为不同的Windows用户设置环境变量?
我尝试使用Execute
块,如下所示:
execute 'setx DUMMYENV' do
command 'setx DUMMYENV "THISISDUMMY"'
user "UserA"
end
但是这需要密码,我不希望在任何食谱中使用明文形式的密码,因此该解决方案似乎不可行。
我还考虑过要像这样使用registry_key
做些事情:
registry_key 'HKEY_USERS\S-1-5-21-0123456789-012345678-...\Environment' do
values [{name: 'DUMMYENV', type: :string, data: '1'},
{name: 'ENVTEST', type: :string, data: 'TESTING'}
]
action :create
end
唯一的问题是我不确定我要修改的每个用户帐户的SID是否会在计算机之间更改。我可能可以找到一种解决方案,以遍历可用的HKEY_Users并解析出我正在寻找的HKEY_Users,但这似乎很乏味。
我开始研究的另一个选项是windows_env
,但是我没有做太多测试,也没有看到一个可靠的选项来指定用户。
最终目标是让Chef以管理员身份运行,从而为不同的用户设置不同的环境变量。厨师有什么简单的方法吗?
谢谢!
答案 0 :(得分:1)
您确实可以使用windows_env
来做到这一点,尽管它尚未在文档中反映出来:https://github.com/chef/chef/blob/master/lib/chef/resource/windows_env.rb#L39
windows_env 'DUMMYENV' do
value 'THISISDUMMY'
user 'UserA'
end
请记住,如果您正在谈论使用环境变量的计划任务,则必须重新启动才能看到它。