During my preparations for Dublin I came across many topics in the Azure Automation world I wanted to automate as well. Currently the resources “on how to do this” are limited to the Microsoft Documentations available.
I planned to on-board a newly provisioned virutal machine in place and join this server into my automation account. A process I do on a day to day basis with development environments.
I tend to trash my virtual development machines on a regular basis. This process allows me to be assured that my systems are up to the customers requirement.
This means I upload the customer specific configuration and compile the DSC prior to joining the VM.
If you do already have a configuration in place and want to reuse this, you can go to step number 3.
What is the process of on-boarding a virtual machine to an Automation Account?
0. Login in to your Azure Account
Login-AzureRmAccount
1. Upload your latest DSC configuration to Azure Automation DSC
Uploading a configuration requires you to run the following PowerShell Script.
Import-AzureRmAutomationDscConfiguration -SourcePath "<Full Path to your Configuration>"` -ResourceGroupName "<Your Resource Group Name>" ` -AutomationAccountName "<Your Automation Account Name>" ` -Published ` -Force ` -Verbose
2. Compile your configuration
After an successful upload you can start the compilation of your configuration. In case the configuration requires parameters, you can ass them into the cmdlet as hashtable:
$dscCompileParameters = @{ } Start-AzureRmAutomationDscCompilationJob -AutomationAccountName "<Your Automation Account Name >"` -ConfigurationName "<Name of your configuration>" ` -ResourceGroupName "< Your Resource Group Name>"` -IncrementNodeConfigurationBuild ` -Parameters $dscCompileParameters ` -Verbose
3. Join a VM to your Azure Automation Account – using PowerShell
Register-AzureRmAutomationDscNode -AzureVMName "<Your VM Name>" ` -ResourceGroupName "< Your Resource Group Name>" ` -AutomationAccountName "<Your Automation Account Name >" ` -RebootNodeIfNeeded $true ` -NodeConfigurationName "<Your Node Configuration Name >" ` -ConfigurationMode "ApplyAndAutocorrect" ` -Verbose
Outcome
With these few lines of PowerShell you will be able to onboard a VM to Azure Automation and configure this machine to use a specific configuration.