【问题标题】:Use Chef to modify settings for all IIS sites running on a node使用 Chef 修改节点上运行的所有 IIS 站点的设置
【发布时间】:2017-07-13 14:48:51
【问题描述】:

我们的运营团队希望确保所有 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 从配方中生成的网站列表。

我们正在运行 chef 12 和各种 IIS,但最旧的是 7.0。

感谢您的任何建议!

【问题讨论】:

    标签: iis chef-infra


    【解决方案1】:

    为这件事制作一个 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,这样会更容易,甚至只是一个基于行的表格,没有标题行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多