【问题标题】:How to create MOFs from Configuration File and Configuration Data File in PowerShell Desired State Configuration?如何在 PowerShell Desired State Configuration 中从配置文件和配置数据文件创建 MOF?
【发布时间】:2016-02-04 06:33:30
【问题描述】:

我有一个像 data.psd1 这样的配置数据文件

@{
  AllNodes = @(
    @{
       NodeName = "*"
       LogPath = "C:\Logs"
    },

    @{
       NodeName = "machine1";
       Roles = @( "SmtpRole", "WebRole" )
    },

    @{
       NodeName = "machine2";
       Roles = @( "SmtpRole" )
    }
  )
}

我有一个类似 FarmConfiguration.ps1 的配置

Configuration FarmConfiguration {
 Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
 Import-DscResource -ModuleName 'MyCustomDsc'

  Node $AllNodes.NodeName
  {
     SimpleTcpIpConfiguration SimpleTcpIp
     {
     }
  }

  Node $AllNodes.Where{$_.Roles -contains "WebRole"}.NodeName
  {
     WebConfiguration Web
     {
     }
  }

  Node $AllNodes.Where{$_.Roles -contains "SmtpRole"}.NodeName
  {
     SmtpConfiguration Smtp
     {
     }
  }
}

我知道如果我将“FarmConfiguration-ConfigurationData data.psd1”添加到我的 FarmConfiguration.ps1 文件的底部,那么一切正常。

但这是一个大问题,我根本不希望我的 FarmConfiguration 知道数据文件,它会检查到源代码控制中。

我希望能够基于各种不同的数据文件创建 MOF,我该怎么做?谢谢。

【问题讨论】:

    标签: windows powershell dsc


    【解决方案1】:

    好的,我知道该怎么做。

    出于所有实际目的,FarmConfiguration 是 .ps1 文件中的私有函数。所以我将 FarmConfiguration.ps1 更新为以下内容。

    param(
        [Parameter(Mandatory)]
        [string]$ConfigurationData
    )
    
    Configuration FarmConfiguration {
     Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
     Import-DscResource -ModuleName 'MyCustomDsc'
    
      Node $AllNodes.NodeName
      {
         SimpleTcpIpConfiguration SimpleTcpIp
         {
         }
      }
    
      Node $AllNodes.Where{$_.Roles -contains "WebRole"}.NodeName
      {
         WebConfiguration Web
         {
         }
      }
    
      Node $AllNodes.Where{$_.Roles -contains "SmtpRole"}.NodeName
      {
         SmtpConfiguration Smtp
         {
         }
      }
    }
    
    FarmConfiguration -ConfigurationData $ConfigurationData
    

    现在我已经完成了,我可以像这样从单独的脚本中调用它

    .\FarmConfiguration.ps1 -ConfigurationData data.psd1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 2023-01-27
      相关资源
      最近更新 更多