powershell - Unable to run Node and Script in Desired State Configuration -
background
i provisioning vm in azure using arm template , created desired state configuration .ps1 file installs , configures iis. far good.
i added script block right next node block. 
current set up:
configuration main {     param ( [string] $nodename )      import-dscresource -modulename psdesiredstateconfiguration      node $nodename     {         windowsfeature webserver         {             name = "web-server"             ensure = "present"         }          #other windowsfeatures     }      script formatdiskscript     {         setscript =         {             #powershell format disks         }         testscript = { return $false }         getscript = { }     } } inside arm template, have added dsc extension vm , specified url zip file, script run  , function invoke.
"properties": {   "publisher": "microsoft.powershell",   "type": "dsc",   "typehandlerversion": "2.23",   "autoupgrademinorversion": true,   "settings": {     "configuration": {       "url": "[concat(parameters('_artifactslocation'), '/', variables('dscarchivefolder'), '/', variables('webvm_dsczipfilename'))]",       "script": "webvm-dsc.ps1",       "function": "main"     },     "configurationarguments": {       "nodename": "[variables('webvm_name')]"     }   },   "protectedsettings": {     "configurationurlsastoken": "[parameters('_artifactslocationsastoken')]"   } } question
it generates 2 .mof files , executes both node , script sections node section completes successfully. 
when run script, works, script valid. problem when running both of them.
this see in output in c:\packages\plugins\microsoft.powershell.dsc\2.23.0.0\status\0.status
settings handler status 'transitioning'  updating execution status  dsc configuration completed no meta mof file exist restore ... settings handler status 'error'  answer
after trying different approaches, stumbled across 1 worked. placed script inside node instead of being peer:
configuration main {     param ( [string] $nodename )      import-dscresource -modulename psdesiredstateconfiguration      node $nodename     {         windowsfeature webserver         {             name = "web-server"             ensure = "present"         }          #other windowsfeatures          script formatdiskscript         {              setscript =              {                  #powershell format disks              }              testscript = { return $false }              getscript = { }         }     } } 
you need create 2 configurations inside dsc configuration (say main , manual) , put thing want executed arm template main , other thing manual
or create 2 separate configurations in 2 separate files.
Comments
Post a Comment