0

ARMテンプレートとDesired State Configuration(DSC)を使用してAzureに仮想マシンスケールセットを配備しようとしています。 DSC構成を作成し、それが動作している別のVMで検証しました。存在しないAzure ARM DSCスケールデプロイメント - スクリプトを見つけることができません

{ 
    "name": "Microsoft.Powershell.DSC", 
    "properties": { 
     "publisher": "Microsoft.Powershell", 
     "type": "DSC", 
     "typeHandlerVersion": "2.9", 
     "autoUpgradeMinorVersion": true, 
     "settings": { 
     "configuration": { 
      "url": "publicstoragebloburi/DSC/DSC.zip", 
      "script": "Main.ps1", 
      "function": "Main" 
     }, 
     "configurationArguments": { 
      "MachineName": "localhost", 
      "WebDeployPackagePath": PublicStorageBlobPath_App.zip", 
      "UserName": "[parameters('adminUsername')]", 
      "Password": "[parameters('adminPassword')]", 
      "AppName": "FileScanApp", 
      "AppPath": "C:\\inetpub\\dev\\MyWebApp" 

     } 
    } 

Main.ps1ファイルと名前のメインともConfigratuion:ARMテンプレートでは、私は以下のDSC拡張の定義を持っています。 Main.ps1は、ZIPアーカイブのルートディレクトリにあります。拡張機能がVM上で実行されている場合、C:\ Packages \ Plugins \ Microsoft.Powershell.DSC \ 2.71.1.0 \ bin .. \ DSCWork \ DSC.1 \ MainディレクトリにあるMain.ps1ファイルを検索しようとしています。 .ps1。ただし、マシンにリモート接続した場合、Main.ps1がフォルダに存在せず、次のエラーが発生します。

{"code": "DeploymentFailed"、 "message": "少なくとも1つのリソースの展開[{"code": "Conflict"、 "message": "{\ r \ n \"ステータス\ ":\\\" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ "エラー":\ "リソース配備失敗\"、\ r \ n \ "メッセージ\":\ "ターミナルで完了したリソース操作[\ r \ n \ "コード\":\ "VMExtensionProvisioningError \"、\ r \ n \ "メッセージ\"、 :\ "VMが拡張機能を処理する際にエラーを報告しました" Microsoft.P owershell.DSC '。エラーメッセージ:\\ "DSC拡張機能が不正な入力を受け取りました:スクリプトまたはモジュール 'Main.ps1'の実行中にエラーが発生しました: 'C:\\ Packages \\ Plugins \\ Microsoft.Powershell.DSC \\ 2.71。 1.0 \\ bin \\ .. \\ DSCWork \\ DSC.1 \\ Main.ps1 'は、コマンドレット、関数、スクリプトファイル、または実行可能なプログラムの名前として認識されません。パスが含まれていることを確認し、パスが正しいかどうかを確認して、もう一度やり直してください。\ n入力を修正し、拡張機能の実行を再試行してください。\ "" \ "\ r \ n} \ r \ n] \ r \ n} \ r \ n} "}]}

誰かが私に間違っていると教えてもらえますか?私は道に従っていました。これはgithubで入手可能な公式のサンプルARMテンプレート内で実装されています。ありがとうございました!

+0

これはそうすべき場所なので、拡張が失敗した後にvmにログインし、ファイルがC:\ Packages \ Plugins \ Microsoft.Powershell.DSC \ 2.71.1.0 \ DSCWork \ DSCにあることを確認します.1 \ Main.ps1'。そうでない場合、dscアーカイブに何か問題があります – 4c74356b41

+0

私はそれを確認しましたが、そこにはありません。私も私の質問を編集しました。アーカイブには、Main.ps1ファイルと、構成内で使用する追加モジュールのみが含まれています。アーカイブは公開されているBLOBコンテナにアップロードされます。アーカイブを作成する際に間違いを犯した可能性のあるアイデアはありますか?よろしくお願いします。 –

+0

@marek_laniあなたはこれを解決しましたか?私は同じエラーが出て、私はログを見て、それを実行しようとしているログにC:\ ProgramFiles \ WindowsPowerShell \ Modules \ DSCのスクリプトを置いているように見える実行中にエラーが発生しました スクリプトまたはモジュール 'script.ps1': 'C:\ Packages \ Plugins \ Microsoft.Powershell.DSC \ 2.71.1.0 \ bin \ .. \ DSCWork \ DSC.0 \ scriptという用語。ps1 'は、コマンドレット、関数、 スクリプトファイル、または実行可能なプログラムの名前として認識されません。 – Boomerang

答えて

1

:ここ

は、それがエンドツーエンドを動作させる方法を示すサンプルです。 ZIPファイル。私のzipファイルは/DSC/script.ps1でした。それは/script.ps1である必要があります

これは私のためのファイルを見つけることができなかった理由です。

+0

正確に私の問題だった - フォルダ構造。アーカイブ内のルートフォルダに配置する必要があります。 –

1

設定オブジェクトのurlプロパティは、インターネット上でアクセス可能なURLである必要があります。 zipファイルは、VM上のその場所にダウンロードされ、そこから実行されます。 VMに格納されている場所は、テンプレートが知る必要があるものではありませんが、インターネット上でどこを見つけるかを知る必要があります。私はあなたのDSCをチェックし、同じ問題を経験していた私のコメントを1としてhttps://github.com/Azure/azure-quickstart-templates/blob/master/201-vm-win-iis-app-ssl/azuredeploy.json

(いくつか他の人があまりにもあります)

関連する問題