尝试在Chef中做一些相当简单的事情,但似乎无法做对。我知道使用IIS菜谱会更容易,但长话短说它目前还没有。
尝试从属性文件中运行if
elsif
,如下所示。但if node[:domain]
部分似乎无法运行,它只是忽略它或它没有被验证,我无法说明。默认部分可以使用
if node[:platform] == 'windows'
default['WebSiteCreation']['Dir'] = 'D:\Websites'
default['WebSiteCreation']['AppPool'] = 'MySite'
end
if node[:domain] == 'Dev.com'
default['WebSiteCreation']['HostHeader'] = 'Dev'
elsif node[:domain] == 'Test.com'
default['WebSiteCreation']['HostHeader'] = 'Test'
elsif node[:domain] == 'Preprod.com'
default['WebSiteCreation']['HostHeader'] = 'PreProd'
elsif node[:domain] == 'prod.com'
default['WebSiteCreation']['HostHeader'] = 'Prod'
else
end
但是,当我调用任何引用的东西时,如果节点部分作为配方空白中的变量被传递,那么它就无法定义。
我已经尝试将代码移到配方中,没有效果。
我做错了什么......
答案 0 :(得分:1)
如果你有一个厨师节点来测试运行ohai,grep for domain并检查它返回的值。基于此更新您的比较。此外,最好使用case语句而不是if if else阻塞,这将使代码看起来整洁
答案 1 :(得分:0)
这段代码很好,来自Ruby和Chef PoV,很可能是你的域名不是你想象的那样。