Msutter DSCモジュール(PowerShell定義状態構成)にボトルネックがあるようです。 DSCリソースを使用するすべてのクラスは、同じディレクトリにcurrent.mofというファイルを作成する中間のPowershell/DSCコードを生成します。 Puppetエージェント--testを実行すると、問題が発生します。あるパペットクラスが別のパペットクラスに関連する情報を取得しているようです。まるで、MOFを生成してから、別のクラスのMOFを誤って実行したかのようです。これらすべてのリソースを依存関係の矢印と一緒にチェーンしてシリアルに実行する方法を見つけることができると思いますが、それは、解凍するZipアーカイブごとに真に個別のプロファイルクラスを設定できないことを意味します。 1つのサーバーでクラスA、B、Cを取得し、別のサーバーでB、Cなどを取得することをお勧めします。チェーンを配置すると、多くのコードを複製する必要があります。
私はこれについて正しいですか?私はPowerShellを初めて使用します。これは、WebサービスからZipファイルをプルし、それをターゲットの場所に解凍する単一のクラスの例です。
# This profile class installs the BookingsUI package from a URI specified in the global ::package_source variable
class phoenix_profiles::archive_test {
$archive_file = "BookingsUI.Zip"
$drive = pick($::destination_drive, 'd:')
# $staged_archive_path = "${drive}/eftours/packages/${archive_file}"
$staged_archive_path = "${drive}/temp/puppet_archive_test/source/${archive_file}"
dsc_xremotefile { "download ${archive_file}":
dsc_uri => "${::package_source}/${archive_file}",
dsc_destinationpath => $staged_archive_path
} ->
dsc_archive { "unpack ${archive_file}":
dsc_ensure => 'Present',
dsc_validate => "true",
dsc_checksum => "ModifiedDate",
dsc_force => "true",
dsc_path => $staged_archive_path,
dsc_destination => "${drive}/temp/puppet_archive_test/BookingsUI"
}
}
注:これは次の場所からクロスポストされています: http://ask.puppetlabs.com/question/16423/is-the-file-currentmof-a-bottleneck-when-using-the-dsc-module/
これはバグのように聞こえます。ここで問題を報告することをお勧めします https://github.com/msutter/puppet-dsc
更新:問題を https://github.com/msutter/puppet-dsc/issues/1 に提出しました