使用Chef修改节点上运行的所有IIS站点的设置

时间:2017-07-13 14:48:52

标签: iis chef

我们的运营团队希望确保所有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!

1 个答案:

答案 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,这将更容易,甚至只是一个基于行的没有标题行的表。