SSD以外のドライブにインストールしたい製品があるとします。それ以外の場合は、ドライブCに配置します。
たとえば、次の構成では、SQL Server2016が既定の場所にインストールされます。
Configuration DevWorkstation
{
Import-DscResource –ModuleName PSDesiredStateConfiguration
Import-DscResource -ModuleName SqlServerDsc
node localhost
{
WindowsFeature 'NetFramework45'
{
Name = 'NET-Framework-45-Core'
Ensure = 'Present'
}
SqlSetup 'InstallDefaultInstance'
{
InstanceName = 'MSSQLSERVER'
Features = 'SQLENGINE,SSMS'
SQLCollation = 'SQL_Latin1_General_CP1_CI_AS'
SourcePath = '\\fileserver\installs\en_sql_server_2016_developer_with_service_pack_1_x64_dvd_9548071'
SQLSysAdminAccounts = @('Administrators')
DependsOn = '[WindowsFeature]NetFramework45'
}
}
}
ただし、最初にSSD以外のドライブがあるかどうかを確認し、ある場合はそこにインストールします。
私が理解しているように、Powershellコードはコンパイル中に実行されるため、使用できません。構成中に実行する必要があります。
どうすればいいのですか?
Azure Automation DSCプルサーバーを使用すると、これを実際に行うことはできません。おっしゃるように、DSCファイルのコンパイルはオートメーションサーバーで行われ、適用されるサーバーの詳細がないため、それを考慮に入れることはできません。コンパイル時に、次のドライブを提供します。インストールが行われ、それが使用されます。これは、これらのツールがクライアントマシンに関する情報を持っており、コンパイル時にこれを使用できるChefやPuppetのようなものと比較して、DSCプルサーバーがダウンする場所です。
一貫性のあるドライブ文字を使用し、AzureをビルドするときにVMこのドライブが希望どおりに構成されていることを確認する(SSD)以外に、自動化サーバーを使用してこれを回避する方法は実際にはありません。か否か)。
別のオプションは、自動化サーバーを使用する代わりに、Azure VM DSC拡張機能を使用してDSCファイルをVMにプッシュし、適用することです。これにより、DSCの集中管理とレポートのすべての利点が失われますが、DSCファイルは実行されるサーバーでコンパイルされるため、ローカル変数を考慮することができます。詳細については、 ここ を参照してください。 DSC拡張で。