2017-03-07 55 views
0

公開鍵証明書をARMを使用してAzure VMスケールにインストールしたいが、証明書へのローカルパスを正しく取得できない。DSCを使用してAzure VMに公開鍵証明書をインストールする方法

Configuration Example 
{ 
    param 
    (
     [Parameter()] 
     [string[]] 
     $NodeName = 'localhost' 
    ) 

    Import-DscResource -ModuleName xCertificate 

    Node $AllNodes.NodeName 
    { 
     xCertificateImport MyTrustedRoot 
     { 
      Thumbprint = 'c81b94933420221a7ac004a90242d8b1d3e5070d' 
      Location = 'LocalMachine' 
      Store  = 'Root' 
      Path  = '.\Certificate\MyTrustedRoot.cer' 
     } 
    } 
} 

私はPublish-AzureRmVMDscConfigurationコマンドレットにを使用しています:

私がこのコードサンプルを使用していますxCertificate

DSCモジュールにVMのscalesetsのためのPowerShell DSC拡張子を使用して証明書をインストールして使用することが可能ですAzureストレージアカウントにパブリックキー証明書とともにパッケージをアップロードし、DSCスクリプトをアップロードしてARM展開プロセスの一部として使用できるようにします。私はcerticateへのローカルパスを解決する方法を見つけ出すことはできません

しかし .\Certificate\MyTrustedRoot.cerまたは$PSScriptRoot\Certificate\MyTrustedRoot.cer

を使用しているとき、私はエラーを取得する私はDSC内のファイルを解決するか、相対パスを使用するか可能であると思うだろうDSC設定を単純にして、証明書と一緒にパッケージ化します。

更新:Publish-AzureRmVMDscConfigurationは、DSCスクリプトと公開鍵証明書をzureストレージアカウントに圧縮してアップロードします。 VMSS DSCエクステンションはzipをダウンロードし、VM上でローカルに解凍してDSCを実行するので、証明書はスケールセット内のすべてのVM上にローカルに存在します。

しかし、使用されているDSCモジュールのバージョン番号のため、証明書へのパスが確定的ではありません。

答えて

0

DSC拡張ワークフォルダの下のどこかにある、:例えばのために

C:\パッケージ\プラグイン\ Microsoft.Powershell.DSC \ 2.23.0.0 \ DSCWork \ InstallRootCaCert.ps1.0 \証明書\ MyTrustedRoot.cer

私が思い付くことができ最適なソリューションをしました証明書への絶対パスを使用し、明示的にtypeHandlerVersionをからに設定してDSCバージョン番号をロックします。23 ARMテンプレート内と

0

証明書はローカルに存在しません。ストレージアカウント内にのみ存在します。ですから、artifactsLocationとartifactsLocationSasTokenの値を使用してuriを作成することで、証明書へのパスをパラメータとしてストレージに渡す必要があります。

しかし、これはアームテンプレートの展開から得られる値です。 PowerShellを使用してDSCとリソースを公開するだけなので、証明書のURIが何であるかを判断できるはずです。格納アカウントはpublishコマンドレットのパラメータとして指定するので、その情報でURIを構築できるはずです。ストレージアカウントの証明書のURIを再度確認します。

または、VM上でカスタムスクリプト拡張を使用して、証明書をストレージからVMにダウンロードすると、証明書はローカルに存在します。

これはすべてPowerShellで行いますか?このためにアームテンプレートを使用して見たい場合があります。例えば公開-AzureRmVMDscConfigurationをコマンドレットによって作成されたzipパッケージから抽出されたAzureの仮想マシン、DSCファイルと証明書へのパス上にローカルAzure Quickstart Templates

+0

autoUpgradeMinorVersionを設定することがAzureストレージアカウントにアップロードおよびダウンロード、私はパブリッシュ・AzureRmVMDscConfigurationコマンドレットのため-AddtionalPathのPARAMを使用しているため、ローカルに存在するので、すべてがうまくzip形式で圧縮されていVMSS DSC拡張機能によってVMに解凍されます。だから私はちょうど.cerファイルをローカルで参照する必要があります。 RDPを使用してログインしてもファイルが見つかりましたが、パスは確定的ではありません。 – mikanyg

+0

私は代わりにカスタムスクリプト拡張を使うことができると知っていますが、私は、証明書の場所を決定する方法を理解することができれば、DSCアプローチを好むでしょう。相対パスか、パラメータをDSC機能に追加します。 – mikanyg

+0

ディスク上に置かれた証明書はどこだったのですか?私は確かにAzure DSC拡張が既知のパスに抽出すると確信しています... –

関連する問題