web-dev-qa-db-ja.com

Azure Automation DSCを使用している場合、SSD以外のドライブが存在する場合、製品をインストールすることはできますか?

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コードはコンパイル中に実行されるため、使用できません。構成中に実行する必要があります。

どうすればいいのですか?

2
mark

Azure Automation DSCプルサーバーを使用すると、これを実際に行うことはできません。おっしゃるように、DSCファイルのコンパイルはオートメーションサーバーで行われ、適用されるサーバーの詳細がないため、それを考慮に入れることはできません。コンパイル時に、次のドライブを提供します。インストールが行われ、それが使用されます。これは、これらのツールがクライアントマシンに関する情報を持っており、コンパイル時にこれを使用できるChefやPuppetのようなものと比較して、DSCプルサーバーがダウンする場所です。

一貫性のあるドライブ文字を使用し、AzureをビルドするときにVMこのドライブが希望どおりに構成されていることを確認する(SSD)以外に、自動化サーバーを使用してこれを回避する方法は実際にはありません。か否か)。

別のオプションは、自動化サーバーを使用する代わりに、Azure VM DSC拡張機能を使用してDSCファイルをVMにプッシュし、適用することです。これにより、DSCの集中管理とレポートのすべての利点が失われますが、DSCファイルは実行されるサーバーでコンパイルされるため、ローカル変数を考慮することができます。詳細については、 ここ を参照してください。 DSC拡張で。

0
Sam Cogan