1
votes

For some reason, I keep getting these weird issues.....

In this case, I have a Key and Endpoint URL for the Automation Account stored as Secrets in a KeyVault (I don't know of a away to extract it natively from Automation Account using ARM).

I can extract these values perfectly and they they are published to the Template that runs a PowerShell extension to pull a DSC Configuration.

For example as seen as an Input deploying the Template:

"RegistrationUrl":"https://ase-agentservice-prod-1.azure-automation.net/accounts/e0799801-a8da-8934-b0f3-9a43191dd7e6"

However, I receive the following error (note the Url in the Error with 3 forward slashes)

"code": "VMExtensionProvisioningError",

"message": "VM has reported a failure when processing extension 'dscLcm'.

Error message: "DSC Configuration 'ConfigureLCMforAAPull' completed with error(s). Following are the first few: The attempt to 'get an action' for AgentId 11A5A267-6D00-11E7-B07F-000D3AE0FB1B from server URL https://ase-agentservice-prod-1.azure-automation.net///accounts/e0799801-a8da-8934-b0f3-9a43191dd7e6/Nodes(AgentId='11A5A267-6D00-11E7-B07F-000D3AE0FB1B')/GetDscAction failed with server error 'ResourceNotFound(404)'.

For further details see the server error message below or the DSC debug event log with ID 4339.

ServerErrorMessage:- 'No NodeConfiguration was found for the agent.'\"."

The Endpoint Url is passed as a Secure String. I tried passing it a normal string - Same problem.

The Key and Endpoint are feed into the Template as Parameters:

"dscKeySecret": {
    "type": "securestring",
    "metadata": {
        "description": "Key for PowerShell DSC Configuration."
    }
},
"dscUrlSecret": {
    "type": "securestring",
    "metadata": {
        "description": "Url for PowerShell DSC Configuration."
    }
},

These values are used to create a parameter to be passed to the next template that runs the VM Extension.

"extn-settings": {
    "value": {
        "configuration": {
            "url": "[concat(variables('urls').dscScripts, '/', 'lcm-aa-pull', '/', 'lcm-aa-pull', '.zip')]",
            "script": "[concat('lcm-aa-pull', '.ps1')]",
            "function": "ConfigureLCMforAAPull"
        },
        "configurationArguments": {
            "registrationKey": {
                "username": "dsckeySecret",
                "password": "[parameters('dscKeySecret')]"
            },
            "registrationUrl": "[parameters('dscUrlSecret')]",                
            "configurationMode": "ApplyAndMonitor",
            "configurationModeFrequencyMins": 15,
            "domain": "[variables('names').domain]",
            "name": "dscLcm",
            "nodeConfigurationName": "[variables('names').config.ad]",                
            "rebootNodeIfNeeded": true,
            "refreshFrequencyMins": 30
        },
        "protectedSettings": null,
    }
}

The next template receives the Parameters and used in the Properties of the VM's Resources section:

"properties": {
    "publisher": "Microsoft.Powershell",
    "type": "DSC",
    "typeHandlerVersion": "2.22",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "configuration": "[parameters('extn-settings').configuration]",
        "configurationArguments": "[parameters('extn-settings').configurationArguments]"
    },
    "protectedSettings": "[parameters('extn-settings').protectedSettings]"
}

So why is the Url being corrupted with the the first '/' being changed to '///'?

1
You had better check DSC extension log in the VM.Shui shengbao
yep - been there done that - same errormrptsai

1 Answers

0
votes

I don't why the Endpoint Url has 3 x '/', but that wasn't the issue.... I wish I found the issue before I posted this question...

I found the Node Configuration Name was wrong with a spelling mistake (hang head in shame)

Thanks anyway!