我们的运营团队希望确保所有IIS网站都(a)登录到正确的位置,以及(b)记录正确的东西。最棒的IIS Cookbook允许我做这两件事如果我知道这个旧盒子上正在运行什么网站,遗憾的是,我没有。因此,一个相当简单的实现可以:
list_of_sites.each do |s|
iis_site s do
log_directory 'c:/fireplace'
etc.
end
end
但是......我不知道哪个站点在给定节点上运行。 Ohai似乎没有这个信息,但也许有一个非常好的(我喜欢这个拼写更好)Ohai插件,我的google-foo找不到。我想我可以为此写一个ohai插件。但这将是我的第一次,所以有点不愿意去那里。还有其他选择吗?
列出网站的方法列表如下:Display all sites and bindings in powershell,但不确定如何使用配方中PowerShell生成的网站列表。
我们正在运行厨师12和各种IIS,但最老的是7.0。
任何建议的Thx!
答案 0 :(得分:0)
为这一件事制作一个Ohai插件可能有点过分,我只会使用powershell_out
与您链接的代码的变体。你会想要这样的东西:
cmd = powershell_out!(<<-EOH)
# A bunch of PS code goes here
EOH
sites = some_kind_of_parsing(cmd.stdout)
sites.each do |site|
你链接的示例PS代码正在使用Format-Table
,这会很难解析,但我敢打赌你可以找到一些方法将它输出为JSON,这将更容易,甚至只是一个基于行的没有标题行的表。