I'm running through simple exercises to learn Azure and Powershell DSC.
This blog entry provides the perfect "Hello World" example for DSC:
Configuration HelloWorldConfig
{
Node localhost
{
File TestFile {
Ensure = "Present"
DestinationPath = "c:\temp\HelloWorld.txt"
Contents = "Hello World!"
}
}
}
I created the package using powershell, and uploaded to my Azure VM via the extensions blade on the azure portal.
It worked! When I logged on to the machine, I could see the file c:\temp\HelloWorld.txt
.
But DSC is supposed to protect you from 'configuration drift'. To test this, I drifted my configuration by manually deleting the file.
How do I make the file appear again? i.e. How do I re-run this Desired State Configuration check.
I assume that the DSC script I uploaded resides somewhere on the virtual machine. (I can see an entry on the extensions blade).
Or do I have to reload the package? If so, why is that entry even visible on the blade?
I ask, where does this package even reside? I found out the answer using powershell:
$extension = Get-AzureRmVMDscExtension -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name
$extension.ModulesUrl
This revealed that my package now resides in https://iaasv2tempstoreseasia.blob.core.windows.net/vmextensionstemporary-000116674c9bb772-20160908062048340/sample-dsc-package.zip?sv=2015-04-05&sr=c&sig=YnGCCH%2Bvfv%2FMPWexQWhGOw7H8d8EkGcN5Ufudyz1MIE%3D&se=2016-09-09T06%3A20%3A48Z&sp=rw
So, I interpret it is in a storage account (not mine) called iaasv2tempstoreseasia
in a blob container called vmextensionstemporary-000116674c9bb772-20160908062048340
. Just the existence of the word temp
suggests it's not there to be navigated to.
And interestingly, when I deleted the DSC extension from the Extensions blade, I could still download the package using this URL. After a few hours it went away - I suspect by some cleanup job.